File size: 1,468 Bytes
aa9892b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
-- TTS ์ธ์Šคํ„ด์Šค engine_kind ์— 'dual' ์ถ”๊ฐ€ (2026-05-20, Dual-engine ํ†ตํ•ฉ image ํŠธ๋ž™).
-- 1 docker = Qwen3 fork ร—2 + CosyVoice 3.0 ร—1 ํ†ตํ•ฉ ์ธ์Šคํ„ด์Šค (์ €ํŠธ๋ž˜ํ”ฝ ํ•˜๋“œ์›จ์–ด ์ ˆ์•ฝ).
--
-- 'dual' ์€ ๋ผ์šฐํŒ… engine ์ด ์•„๋‹ˆ๋ผ instance kind โ€” ๊ฐ ์›Œ์ปค๋Š” ์ž๊ธฐ /health ๋กœ qwen3/
-- cosyvoice35 ๋ฅผ ๋ณด๊ณ ํ•˜๊ณ  dispatcher ๊ฐ€ per-worker ๋ผ์šฐํŒ… (mixed ์ž๋™). instance ์˜
-- 'dual' ๊ฐ’์€ image ์„ ํƒ / disk / inet / proc_count / cap ์—๋งŒ ์‚ฌ์šฉ (scale_service.py).
--
-- ํšŒ๊ท€ 0 ๊ฐ€๋“œ:
--   - 030/032 ์˜ ๊ธฐ์กด 'qwen3'/'cosyvoice35' ์ธ์Šคํ„ด์Šค ์˜ํ–ฅ 0 (constraint ํ™•์žฅ๋งŒ)
--   - user_voice_prompts (sql 031) ์˜ engine_kind CHECK ๋Š” ๋ณ€๊ฒฝ X โ€” prompt ๋Š”
--     ์›Œ์ปค ๋ณด๊ณ  engine ('qwen3'/'cosyvoice35') ๋‹จ์œ„๋กœ ์ €์žฅ, 'dual' ๋กœ ์ €์žฅ ์•ˆ ๋จ
--
-- ์ดํ–‰ ๋‹จ๊ณ„:
--   1) ์ด SQL ์ ์šฉ (constraint ๊ฐฑ์‹ )
--   2) backend ๋ฐฐํฌ (ENGINE_KIND_DUAL ์ฒ˜๋ฆฌ)
--   3) PoC ๊ฒŒ์ดํŠธ 3๊ฐœ ํ†ต๊ณผ ํ›„ voicetalk-tts-dual:latest ๋นŒ๋“œ (build-tts-dual-image.yml)
--   4) frontend ๋ฐฐํฌ (admin engine dropdown "Dual")
--   5) admin "TTS ์„œ๋ฒ„ ์ถ”๊ฐ€" โ†’ Dual ์„ ํƒ spawn
--
-- ์ฐธ์กฐ: doc/runbook/tts_engine_multi.md "Dual-engine ํ†ตํ•ฉ image" ์„น์…˜

ALTER TABLE public.tts_scale_instances
    DROP CONSTRAINT IF EXISTS tts_scale_instances_engine_kind_check;
ALTER TABLE public.tts_scale_instances
    ADD CONSTRAINT tts_scale_instances_engine_kind_check
    CHECK (engine_kind IN ('qwen3', 'cosyvoice35', 'dual'));