-
Notifications
You must be signed in to change notification settings - Fork 994
Expand file tree
/
Copy pathgreeting_parallel.json5
More file actions
155 lines (150 loc) · 4.64 KB
/
Copy pathgreeting_parallel.json5
File metadata and controls
155 lines (150 loc) · 4.64 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
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
{
// Configuration version
version: "v1.0.5",
// Mode system configuration for Unitree Go2
default_mode: "greeting",
allow_manual_switching: true,
mode_memory_enabled: true,
// Global settings
api_key: "${OM_API_KEY:-openmind_free}",
unitree_ethernet: "${UNITREE_ETHERNET:-enP2p1s0}",
system_governance: "",
cortex_llm: {
type: "GeminiLLM",
config: {
agent_name: "${ROBOT_NAME:-Bits}",
history_length: 10,
},
},
knowledge_base: {
knowledge_base_name: "om",
base_url: "${KB_BASE_URL:-http://localhost:8100}",
min_score: 0.6,
},
modes: {
approaching: {
display_name: "Approaching Person Mode",
description: "Robot approaches detected humans autonomously.",
system_prompt_base: "You are ${ROBOT_NAME:-Bits}, a friendly and helpful robotic companion built on a ${ROBOT_PLATFORM:-Unitree Go2} platform.",
hertz: 0.001,
agent_inputs: [],
action_execution_mode: "concurrent",
agent_actions: [],
backgrounds: [
{
type: "ApproachingPerson",
},
],
lifecycle_hooks: [],
},
greeting: {
display_name: "Greeting Conversation Mode",
description: "Robot engages in greeting conversations with users upon approach.",
system_prompt_base: "You are ${ROBOT_NAME:-Bits}, a friendly and engaging robotic companion built on a ${ROBOT_PLATFORM:-Unitree Go2} platform at the GTC conference. You are powered by NVIDIA Thor hardware and run OpenMind's OM1 robotics software stack. OpenMind is a software company that makes robots useful, and you demonstrate what robots can do when powered by OM1 and advanced AI hardware like NVIDIA Thor. Answer questions in 1-2 short spoken sentences. If relevant info is provided, use it and rephrase in your own words. DO NOT REPEAT THE VOICE INPUT. Always response in the language that the user voice input is in.",
hertz: 0.001,
agent_inputs: [
{
type: "GoogleASRInput",
config: {
enable_tts_interrupt: false,
},
},
{
type: "ConversationHistoryInput",
config: {
max_rounds: 3,
},
},
],
cortex_llm: {
type: "ParallelLLM",
config: {
llms: [
{
llm_type: "GeminiLLM",
action_filter: ["greeting_conversation"],
},
{
llm_type: "FunctionGemmaLLM",
action_filter: ["arm_g1", "face"],
config: {
base_url: "http://localhost:8200/v1",
},
},
],
execute_immediately: true,
},
},
action_execution_mode: "concurrent",
agent_actions: [
{
name: "greeting_conversation",
llm_label: "greeting_conversation",
connector: "greeting_conversation_elevenlabs",
config: {
voice_id: "${VOICE_ID:-PoHUWWWMHFrA8z7Q88pu}",
},
},
{
name: "face",
llm_label: "show_emotion",
connector: "avatar",
},
{
name: "arm_g1",
llm_label: "robot_action",
connector: "zenoh",
},
],
backgrounds: [],
lifecycle_hooks: [
{
hook_type: "on_startup",
handler_type: "message",
handler_config: {
tts_provider: "elevenlabs",
message: "Hello! I'm ${ROBOT_NAME:-Bits}, how can I help you today?",
voice_id: "${VOICE_ID:-PoHUWWWMHFrA8z7Q88pu}",
},
},
{
hook_type: "on_entry",
handler_type: "message",
handler_config: {
tts_provider: "elevenlabs",
message: "Hello! I'm ${ROBOT_NAME:-Bits}, how can I help you today?",
voice_id: "${VOICE_ID:-PoHUWWWMHFrA8z7Q88pu}",
},
},
{
hook_type: "on_exit",
handler_type: "function",
handler_config: {
module_name: "greeting_hook",
function: "greeting_end_hook",
tts_provider: "elevenlabs",
voice_id: "${VOICE_ID:-PoHUWWWMHFrA8z7Q88pu}",
},
},
],
},
},
transition_rules: [
{
from_mode: "approaching",
to_mode: "greeting",
transition_type: "context_aware",
context_conditions: { approaching_detected: true },
priority: 0,
cooldown_seconds: 5.0,
},
{
from_mode: "greeting",
to_mode: "approaching",
transition_type: "context_aware",
context_conditions: { greeting_conversation_finished: true },
priority: 0,
cooldown_seconds: 5.0,
},
],
}