|
@@ -232,11 +232,13 @@ export class RealDialogueAPI implements DialogueAPI {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- async generateGreeting(sessionId: string, signal?: AbortSignal): Promise<GreetingInfo> {
|
|
|
|
|
|
|
+ async generateGreeting(sessionId: string, turnId: string, signal?: AbortSignal): Promise<GreetingInfo> {
|
|
|
const res = await fetch(`${API_BASE}/session/${sessionId}/greeting`, {
|
|
const res = await fetch(`${API_BASE}/session/${sessionId}/greeting`, {
|
|
|
method: 'POST',
|
|
method: 'POST',
|
|
|
|
|
+ headers: { 'Content-Type': 'application/json' },
|
|
|
credentials: 'include',
|
|
credentials: 'include',
|
|
|
signal,
|
|
signal,
|
|
|
|
|
+ body: JSON.stringify({ turnId }),
|
|
|
})
|
|
})
|
|
|
if (!res.ok) {
|
|
if (!res.ok) {
|
|
|
const text = await res.text().catch(() => '')
|
|
const text = await res.text().catch(() => '')
|
|
@@ -260,10 +262,11 @@ export class RealDialogueAPI implements DialogueAPI {
|
|
|
return await res.json()
|
|
return await res.json()
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- async *speak(sessionId: string, audioBlob: Blob, signal: AbortSignal): AsyncGenerator<SSEEvent> {
|
|
|
|
|
|
|
+ async *speak(sessionId: string, audioBlob: Blob, signal: AbortSignal, turnId: string): AsyncGenerator<SSEEvent> {
|
|
|
const formData = new FormData()
|
|
const formData = new FormData()
|
|
|
formData.append('sessionId', sessionId)
|
|
formData.append('sessionId', sessionId)
|
|
|
formData.append('audio', audioBlob, 'recording.webm')
|
|
formData.append('audio', audioBlob, 'recording.webm')
|
|
|
|
|
+ formData.append('turnId', turnId)
|
|
|
|
|
|
|
|
const res = await fetch(`${API_BASE}/speak`, {
|
|
const res = await fetch(`${API_BASE}/speak`, {
|
|
|
method: 'POST',
|
|
method: 'POST',
|