client sdk
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
import { AudioAgentClient, AudioAgentRest } from '../sdk/audio-agent-client.js';
|
||||
|
||||
const rest = new AudioAgentRest('http://localhost:8787');
|
||||
console.log('REST health =>', JSON.stringify(await rest.health()));
|
||||
const tools = await rest.getTools();
|
||||
console.log('REST tools =>', tools.count, tools.source);
|
||||
|
||||
const client = new AudioAgentClient({ baseUrl: 'http://localhost:8787' });
|
||||
const seen = [];
|
||||
|
||||
await new Promise((resolve, reject) => {
|
||||
const timer = setTimeout(() => reject(new Error('timeout waiting for cues')), 8000);
|
||||
client.on('cues', (e) => {
|
||||
seen.push(`cues(lang=${e.lang})`);
|
||||
clearTimeout(timer);
|
||||
resolve();
|
||||
});
|
||||
client.on('error', (e) => console.error('ERR event', e));
|
||||
client.connect().then(() => console.log('WS connected =>', client.url)).catch(reject);
|
||||
});
|
||||
|
||||
// Observe the turn events + decoded PCM frames.
|
||||
let audioFrames = 0;
|
||||
client.on('user', (e) => seen.push(`user(${JSON.stringify(e.text)})`));
|
||||
client.on('assistant_delta', (e) => seen.push(`assistant_delta(len=${e.text.length})`));
|
||||
client.on('assistant_end', () => seen.push('assistant_end'));
|
||||
client.on('cue', (e) => seen.push(`cue(${e.kind})`));
|
||||
client.on('tool_call', (e) => seen.push(`tool_call(${e.name})`));
|
||||
client.on('audio', (e) => {
|
||||
audioFrames++;
|
||||
if (e.samples.length !== 882) seen.push(`BAD frame ${e.samples.length}`);
|
||||
});
|
||||
|
||||
// Send a PCM frame (882 samples of silence) + a text turn, then confirm events flow.
|
||||
console.log('sendAudio =>', client.sendAudio(new Int16Array(882)));
|
||||
client.sendUserText('di solo "ciao"');
|
||||
await new Promise((r) => setTimeout(r, 12000));
|
||||
client.close();
|
||||
console.log('events seen:', seen.join(', '));
|
||||
console.log('audio frames decoded:', audioFrames);
|
||||
process.exit(0);
|
||||
Reference in New Issue
Block a user