robopark 2.8.30 → 2.8.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/scheduler/main.py +47 -8
package/package.json
CHANGED
package/scheduler/main.py
CHANGED
|
@@ -424,6 +424,22 @@ async def init_db():
|
|
|
424
424
|
pass
|
|
425
425
|
await db.commit()
|
|
426
426
|
|
|
427
|
+
# ---- voice_stacks: options ROBOVOICE actually reads at runtime but
|
|
428
|
+
# this table didn't expose yet (llm auth + sampling + wake-word tuning) ----
|
|
429
|
+
for _table, _column, _coldef in (
|
|
430
|
+
("voice_stacks", "llm_api_key", "TEXT"),
|
|
431
|
+
("voice_stacks", "temperature", "REAL DEFAULT 0.7"),
|
|
432
|
+
("voice_stacks", "num_ctx", "INTEGER DEFAULT 8192"),
|
|
433
|
+
("voice_stacks", "wake_word_model", "TEXT"),
|
|
434
|
+
("voice_stacks", "wake_word_threshold", "REAL DEFAULT 0.5"),
|
|
435
|
+
("voice_stacks", "wake_word_timeout", "REAL DEFAULT 3.0"),
|
|
436
|
+
):
|
|
437
|
+
try:
|
|
438
|
+
await db.execute(f"ALTER TABLE {_table} ADD COLUMN {_column} {_coldef}")
|
|
439
|
+
except Exception:
|
|
440
|
+
pass
|
|
441
|
+
await db.commit()
|
|
442
|
+
|
|
427
443
|
# No demo robots are seeded. Actual robots enroll via the device
|
|
428
444
|
# enrollment API or are added through the scheduler UI. This keeps the
|
|
429
445
|
# fleet view honest — only real connected hardware appears.
|
|
@@ -2272,6 +2288,9 @@ class VoiceStack(BaseModel):
|
|
|
2272
2288
|
stt_language: str = "en"
|
|
2273
2289
|
llm_provider: str = "ollama"
|
|
2274
2290
|
llm_model: str = "gemma4:e4b"
|
|
2291
|
+
llm_api_key: Optional[str] = None
|
|
2292
|
+
temperature: float = 0.7
|
|
2293
|
+
num_ctx: int = 8192
|
|
2275
2294
|
tts_provider: str = "elevenlabs"
|
|
2276
2295
|
tts_voice: str = "21m00Tcm4TlvDq8ikWAM"
|
|
2277
2296
|
tts_language: str = "en"
|
|
@@ -2279,6 +2298,9 @@ class VoiceStack(BaseModel):
|
|
|
2279
2298
|
min_endpointing_delay: float = 0.7
|
|
2280
2299
|
max_turns: int = 20
|
|
2281
2300
|
wake_word_enabled: bool = False
|
|
2301
|
+
wake_word_model: Optional[str] = None
|
|
2302
|
+
wake_word_threshold: float = 0.5
|
|
2303
|
+
wake_word_timeout: float = 3.0
|
|
2282
2304
|
created_at: Optional[datetime] = None
|
|
2283
2305
|
updated_at: Optional[datetime] = None
|
|
2284
2306
|
|
|
@@ -2290,6 +2312,9 @@ class VoiceStackCreate(BaseModel):
|
|
|
2290
2312
|
stt_language: str = "en"
|
|
2291
2313
|
llm_provider: str = "ollama"
|
|
2292
2314
|
llm_model: str = "gemma4:e4b"
|
|
2315
|
+
llm_api_key: Optional[str] = None
|
|
2316
|
+
temperature: float = 0.7
|
|
2317
|
+
num_ctx: int = 8192
|
|
2293
2318
|
tts_provider: str = "elevenlabs"
|
|
2294
2319
|
tts_voice: str = "21m00Tcm4TlvDq8ikWAM"
|
|
2295
2320
|
tts_language: str = "en"
|
|
@@ -2297,6 +2322,9 @@ class VoiceStackCreate(BaseModel):
|
|
|
2297
2322
|
min_endpointing_delay: float = 0.7
|
|
2298
2323
|
max_turns: int = 20
|
|
2299
2324
|
wake_word_enabled: bool = False
|
|
2325
|
+
wake_word_model: Optional[str] = None
|
|
2326
|
+
wake_word_threshold: float = 0.5
|
|
2327
|
+
wake_word_timeout: float = 3.0
|
|
2300
2328
|
|
|
2301
2329
|
# Effective configuration returned to the ROBOVOICE agent for a given room/robot.
|
|
2302
2330
|
class RobotVoiceConfig(BaseModel):
|
|
@@ -2493,14 +2521,20 @@ async def create_voice_stack(payload: VoiceStackCreate):
|
|
|
2493
2521
|
await db.execute(
|
|
2494
2522
|
"""INSERT INTO voice_stacks
|
|
2495
2523
|
(id, name, stt_provider, stt_model, stt_language, llm_provider, llm_model,
|
|
2524
|
+
llm_api_key, temperature, num_ctx,
|
|
2496
2525
|
tts_provider, tts_voice, tts_language, allow_interruptions,
|
|
2497
|
-
min_endpointing_delay, max_turns, wake_word_enabled,
|
|
2498
|
-
|
|
2526
|
+
min_endpointing_delay, max_turns, wake_word_enabled,
|
|
2527
|
+
wake_word_model, wake_word_threshold, wake_word_timeout,
|
|
2528
|
+
created_at, updated_at)
|
|
2529
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)""",
|
|
2499
2530
|
(
|
|
2500
2531
|
stack_id, payload.name, payload.stt_provider, payload.stt_model, payload.stt_language,
|
|
2501
|
-
payload.llm_provider, payload.llm_model, payload.
|
|
2532
|
+
payload.llm_provider, payload.llm_model, payload.llm_api_key, payload.temperature, payload.num_ctx,
|
|
2533
|
+
payload.tts_provider, payload.tts_voice,
|
|
2502
2534
|
payload.tts_language, int(payload.allow_interruptions), payload.min_endpointing_delay,
|
|
2503
|
-
payload.max_turns, int(payload.wake_word_enabled),
|
|
2535
|
+
payload.max_turns, int(payload.wake_word_enabled),
|
|
2536
|
+
payload.wake_word_model, payload.wake_word_threshold, payload.wake_word_timeout,
|
|
2537
|
+
now, now,
|
|
2504
2538
|
),
|
|
2505
2539
|
)
|
|
2506
2540
|
await db.commit()
|
|
@@ -2532,15 +2566,20 @@ async def update_voice_stack(stack_id: str, payload: VoiceStackCreate):
|
|
|
2532
2566
|
await db.execute(
|
|
2533
2567
|
"""UPDATE voice_stacks SET
|
|
2534
2568
|
name = ?, stt_provider = ?, stt_model = ?, stt_language = ?, llm_provider = ?,
|
|
2535
|
-
llm_model = ?,
|
|
2569
|
+
llm_model = ?, llm_api_key = ?, temperature = ?, num_ctx = ?,
|
|
2570
|
+
tts_provider = ?, tts_voice = ?, tts_language = ?,
|
|
2536
2571
|
allow_interruptions = ?, min_endpointing_delay = ?, max_turns = ?,
|
|
2537
|
-
wake_word_enabled = ?,
|
|
2572
|
+
wake_word_enabled = ?, wake_word_model = ?, wake_word_threshold = ?, wake_word_timeout = ?,
|
|
2573
|
+
updated_at = ?
|
|
2538
2574
|
WHERE id = ?""",
|
|
2539
2575
|
(
|
|
2540
2576
|
payload.name, payload.stt_provider, payload.stt_model, payload.stt_language,
|
|
2541
|
-
payload.llm_provider, payload.llm_model, payload.
|
|
2577
|
+
payload.llm_provider, payload.llm_model, payload.llm_api_key, payload.temperature, payload.num_ctx,
|
|
2578
|
+
payload.tts_provider, payload.tts_voice,
|
|
2542
2579
|
payload.tts_language, int(payload.allow_interruptions), payload.min_endpointing_delay,
|
|
2543
|
-
payload.max_turns, int(payload.wake_word_enabled),
|
|
2580
|
+
payload.max_turns, int(payload.wake_word_enabled),
|
|
2581
|
+
payload.wake_word_model, payload.wake_word_threshold, payload.wake_word_timeout,
|
|
2582
|
+
now, stack_id,
|
|
2544
2583
|
),
|
|
2545
2584
|
)
|
|
2546
2585
|
await db.commit()
|