convai-web-sdk
Version:
Integrate lifelike digital beings into your web applications with real-time conversations, actions, and facial expressions. Supports a variety of voices, languages, and emotions.
87 lines (86 loc) • 2.95 kB
TypeScript
import { ActionConfig, GetResponseResponse } from "../../Proto/generated";
import { AudioPlayer } from "./streaming_audio_player";
export interface ConvaiClientParams {
apiKey: string;
characterId: string;
speaker?: string;
speakerId?: string;
enableAudio?: boolean;
sessionId?: string;
enableFacialData?: boolean;
enableFacialEmotionData?: boolean;
faceModel?: 0 | 1 | 2 | 3;
narrativeTemplateKeysMap?: Map<string, string>;
textOnlyResponse?: boolean;
micUsage?: boolean;
webstreamUrl?: string;
languageCode?: string;
retryCount?: number;
apiBaseUrl?: string;
}
export declare class ConvaiClient {
private sessionId;
private responseCallback;
private errorCallback;
private requestQueue;
private apiKey;
private characterId;
private speaker;
private speakerId;
private languageCode;
private enableAudio;
private enableAddingChunk;
private finalChunkReceived;
private audioRecorder;
private audioPlayer;
private convaiGrpcClient;
private retryCount;
private totalReties;
private temporaryUserTranscript;
private webstreamUrl;
private narrativeTemplateKeysMap;
private apiBaseUrl;
private speakerResolutionPromise;
private dynamicInfo;
private enableFacialData;
private enableFacialEmotionData;
private faceModel;
constructor(params: ConvaiClientParams);
private whenSpeakerReady;
private validateBeforeRequest;
resetSession(): void;
setResponseCallback(fn: (response: GetResponseResponse) => void): void;
setErrorCallback(fn: (type: string, statusMessage: string, status: string) => void): void;
invokeTrigger(name: string, message?: string): void;
sendFeedback(interaction_id: string, character_id: string, session_id: string, thumbs_up: boolean, feedback_text: string): void;
sendTextChunk(text: string): void;
sendTextStream(text: string, isTyping?: boolean): void;
connectionState(text: string): void;
startAudioChunk(): void;
endAudioChunk(): void;
toggleAudioVolume(): void;
private processRequestQueue;
getAudioVolume(): number;
stopCharacterAudio(): void;
onAudioPlay(fn: () => void): void;
onAudioStop(fn: () => void): void;
endRecording(): void;
pauseAudio(): void;
resumeAudio(): void;
onAudioStateChange(fn: () => void): void;
playAudio(): void;
setActionConfig(actionConfig: ActionConfig): void;
updateDynamicInfo(_dynamicInfo: string): void;
updateNarrativeTemplate(narrativeTemplateKeysMap: Map<string, string>): void;
updateSpeakerMetadata(metadata: Record<string, string>): Promise<{
speakerId: string;
name: string;
} | null>;
getSpeakerMetadata(): {
name: string;
metadata: Record<string, string>;
};
getSpeakerId(): string;
getSpeakerName(): string;
getAudioPlayer(): AudioPlayer | undefined;
}