はじめに¶
最短で動くボイスエージェントを作る手順です。
詳細な手順は タスクフロー を参照してください。
1. スタックを決める¶
各役割で1つ選びます。後で入れ替え可能です。
- Transport: Twilio(本番)または Mock(ローカル)。
- STT: Deepgram(本番)または Mock(ローカル)。
- TTS: ElevenLabs(本番)または Mock(ローカル)。
- LLM: OpenAI(本番)または Mock(ローカル)。
2. 参照サンプルを実行¶
HVACサンプルは routing、確認、リカバリ、サマリまで含む完全版です。
go run ./examples/hvac --config examples/hvac/config.yaml
3. 最小エンジン配線¶
package main
import (
"context"
"log"
"os"
"os/signal"
"github.com/harunnryd/ranya/pkg/ranya"
)
func main() {
cfg, err := ranya.LoadConfig("config.yaml")
if err != nil {
log.Fatal(err)
}
engine := ranya.NewEngine(ranya.EngineOptions{Config: cfg})
ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt)
defer stop()
if err := engine.Start(ctx); err != nil {
log.Fatal(err)
}
<-ctx.Done()
_ = engine.Stop()
}
4. 最小限の追加¶
5. 本番条件で検証¶
turn.min_barge_in_msを調整。pipeline.backpressureを調整。privacy.redact_pii=trueを基本に。
完了条件¶
- 通話が end‑to‑end で動く。
- タイムラインで原因特定できる。
- プロバイダーをコード変更なしで交換できる。