Skip to content

Commit 5a34240

Browse files
authored
Add chatsocket (#550)
1 parent 26c0dea commit 5a34240

File tree

1 file changed

+62
-0
lines changed
  • src/api/resources/empathicVoice/resources/chat/client

1 file changed

+62
-0
lines changed

src/api/resources/empathicVoice/resources/chat/client/Client.ts

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import * as core from "../../../../../../core";
44
import qs from "qs";
55
import { ChatSocket } from "./Socket";
66
import { SDK_VERSION } from "../../../../../../version";
7+
import { SessionSettings } from "../../../types/SessionSettings";
78

89
export function createHostnameWithProtocol(environment: string) {
910
const protocol = /(https|http|wss|ws):\/\//.exec(environment);
@@ -44,6 +45,13 @@ export declare namespace Chat {
4445
/** ID of the Voice to use for this chat. If specified, will override the voice set in the Config */
4546
voiceId?: string;
4647

48+
sessionSettings?: Pick<
49+
SessionSettings,
50+
Exclude<keyof SessionSettings, "builtinTools" | "type" | "metadata" | "tools">
51+
> & {
52+
eventLimit?: number;
53+
};
54+
4755
/** Extra query parameters sent at WebSocket connection */
4856
queryParams?: Record<string, string | string[] | object | object[]>;
4957
}
@@ -88,6 +96,60 @@ export class Chat {
8896
queryParams["voice_id"] = args.voiceId;
8997
}
9098

99+
if (args.sessionSettings !== null && args.sessionSettings !== undefined) {
100+
if (args.sessionSettings.audio !== null && args.sessionSettings.audio !== undefined) {
101+
if (
102+
args.sessionSettings.audio?.channels !== null &&
103+
args.sessionSettings.audio?.channels !== undefined
104+
) {
105+
queryParams["session_settings[audio][channels]"] = String(args.sessionSettings.audio.channels);
106+
}
107+
if (
108+
args.sessionSettings.audio?.encoding !== null &&
109+
args.sessionSettings.audio?.encoding !== undefined
110+
) {
111+
queryParams["session_settings[audio][encoding]"] = String(args.sessionSettings.audio.encoding);
112+
}
113+
if (
114+
args.sessionSettings.audio?.sampleRate !== null &&
115+
args.sessionSettings.audio?.sampleRate !== undefined
116+
) {
117+
queryParams["session_settings[audio][sample_rate]"] = String(args.sessionSettings.audio.sampleRate);
118+
}
119+
}
120+
if (args.sessionSettings.context !== null && args.sessionSettings.context !== undefined) {
121+
if (args.sessionSettings?.context?.text !== null && args.sessionSettings?.context?.text !== undefined) {
122+
queryParams["session_settings[context][text]"] = String(args.sessionSettings.context.text);
123+
}
124+
if (args.sessionSettings?.context?.type !== null && args.sessionSettings?.context?.type !== undefined) {
125+
queryParams["session_settings[context][type]"] = String(args.sessionSettings.context.type);
126+
}
127+
}
128+
if (args.sessionSettings?.customSessionId !== null && args.sessionSettings?.customSessionId !== undefined) {
129+
queryParams["session_settings[custom_session_id]"] = String(args.sessionSettings.customSessionId);
130+
}
131+
if (args.sessionSettings?.eventLimit !== null && args.sessionSettings?.eventLimit !== undefined) {
132+
queryParams["session_settings[event_limit]"] = String(args.sessionSettings.eventLimit);
133+
}
134+
if (
135+
args.sessionSettings?.languageModelApiKey !== null &&
136+
args.sessionSettings?.languageModelApiKey !== undefined
137+
) {
138+
queryParams["session_settings[language_model_api_key]"] = String(
139+
args.sessionSettings.languageModelApiKey,
140+
);
141+
}
142+
if (args.sessionSettings?.systemPrompt !== null && args.sessionSettings?.systemPrompt !== undefined) {
143+
queryParams["session_settings[system_prompt]"] = String(args.sessionSettings.systemPrompt);
144+
}
145+
if (args.sessionSettings?.variables !== null && args.sessionSettings?.variables !== undefined) {
146+
queryParams["session_settings[variables]"] = String(args.sessionSettings.variables);
147+
}
148+
if (args.sessionSettings?.voiceId !== null && args.sessionSettings?.voiceId !== undefined) {
149+
queryParams["session_settings[voice_id]"] = String(args.sessionSettings.voiceId);
150+
}
151+
}
152+
91153
if (args.queryParams !== null && args.queryParams !== undefined) {
92154
for (const [name, value] of Object.entries(args.queryParams)) {
93155
queryParams[name] = value;

0 commit comments

Comments
 (0)