UNPKG

tencentcloud-sdk-nodejs-intl-en

Version:
1,559 lines (1,319 loc) • 331 kB
/* * Copyright (c) 2018 Tencent. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ const AbstractModel = require("../../common/abstract_model"); /** * DescribeExtension request structure. * @class */ class DescribeExtensionRequest extends AbstractModel { constructor(){ super(); /** * Application id (required) can be found at https://console.cloud.tencent.com/ccc. * @type {number || null} */ this.SdkAppId = null; /** * Extension. * @type {string || null} */ this.ExtensionId = null; } /** * @private */ deserialize(params) { if (!params) { return; } this.SdkAppId = 'SdkAppId' in params ? params.SdkAppId : null; this.ExtensionId = 'ExtensionId' in params ? params.ExtensionId : null; } } /** * CreateCCCSkillGroup response structure. * @class */ class CreateCCCSkillGroupResponse extends AbstractModel { constructor(){ super(); /** * Skill group id. * @type {number || null} */ this.SkillGroupId = null; /** * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem. * @type {string || null} */ this.RequestId = null; } /** * @private */ deserialize(params) { if (!params) { return; } this.SkillGroupId = 'SkillGroupId' in params ? params.SkillGroupId : null; this.RequestId = 'RequestId' in params ? params.RequestId : null; } } /** * StopAutoCalloutTask request structure. * @class */ class StopAutoCalloutTaskRequest extends AbstractModel { constructor(){ super(); /** * Application id (required) can be found at https://console.cloud.tencent.com/ccc. * @type {number || null} */ this.SdkAppId = null; /** * Task id. * @type {number || null} */ this.TaskId = null; } /** * @private */ deserialize(params) { if (!params) { return; } this.SdkAppId = 'SdkAppId' in params ? params.SdkAppId : null; this.TaskId = 'TaskId' in params ? params.TaskId : null; } } /** * CreateIVRSession request structure. * @class */ class CreateIVRSessionRequest extends AbstractModel { constructor(){ super(); /** * Application id (required) can be found at https://console.cloud.tencent.com/ccc. * @type {number || null} */ this.SdkAppId = null; /** * Called. * @type {string || null} */ this.Callee = null; /** * Specified ivr id. currently, it supports inbound and automatic outbound types. * @type {number || null} */ this.IVRId = null; /** * List of calling numbers. * @type {Array.<string> || null} */ this.Callers = null; /** * Custom variable. * @type {Array.<Variable> || null} */ this.Variables = null; /** * User data. * @type {string || null} */ this.UUI = null; /** * Maximum ringing duration. auto hang up when the duration threshold is reached. only own number supports this parameter. * @type {number || null} */ this.MaxRingTimeoutSecond = null; } /** * @private */ deserialize(params) { if (!params) { return; } this.SdkAppId = 'SdkAppId' in params ? params.SdkAppId : null; this.Callee = 'Callee' in params ? params.Callee : null; this.IVRId = 'IVRId' in params ? params.IVRId : null; this.Callers = 'Callers' in params ? params.Callers : null; if (params.Variables) { this.Variables = new Array(); for (let z in params.Variables) { let obj = new Variable(); obj.deserialize(params.Variables[z]); this.Variables.push(obj); } } this.UUI = 'UUI' in params ? params.UUI : null; this.MaxRingTimeoutSecond = 'MaxRingTimeoutSecond' in params ? params.MaxRingTimeoutSecond : null; } } /** * Agent information. * @class */ class EventStaffElement extends AbstractModel { constructor(){ super(); /** * Agent email address. * @type {string || null} */ this.Mail = null; /** * Agent id. * @type {string || null} */ this.StaffNumber = null; } /** * @private */ deserialize(params) { if (!params) { return; } this.Mail = 'Mail' in params ? params.Mail : null; this.StaffNumber = 'StaffNumber' in params ? params.StaffNumber : null; } } /** * CreateSDKLoginToken response structure. * @class */ class CreateSDKLoginTokenResponse extends AbstractModel { constructor(){ super(); /** * SDK log-in token. * @type {string || null} */ this.Token = null; /** * Expiry timestamp. unix timestamp. * @type {number || null} */ this.ExpiredTime = null; /** * The path in which the sdk is loaded will change with its release. * @type {string || null} */ this.SdkURL = null; /** * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem. * @type {string || null} */ this.RequestId = null; } /** * @private */ deserialize(params) { if (!params) { return; } this.Token = 'Token' in params ? params.Token : null; this.ExpiredTime = 'ExpiredTime' in params ? params.ExpiredTime : null; this.SdkURL = 'SdkURL' in params ? params.SdkURL : null; this.RequestId = 'RequestId' in params ? params.RequestId : null; } } /** * ModifyStaff request structure. * @class */ class ModifyStaffRequest extends AbstractModel { constructor(){ super(); /** * Application id (required) can be found at https://console.cloud.tencent.com/ccc. * @type {number || null} */ this.SdkAppId = null; /** * Agent account. * @type {string || null} */ this.Email = null; /** * Agent name. * @type {string || null} */ this.Name = null; /** * Agent phone number (preceded by 0086, example: 008618011111111). * @type {string || null} */ this.Phone = null; /** * Agent nickname. * @type {string || null} */ this.Nick = null; /** * Agent id. * @type {string || null} */ this.StaffNo = null; /** * Bind skill group id list. * @type {Array.<number> || null} */ this.SkillGroupIds = null; /** * Whether the cell phone outbound call switch is enabled or not. * @type {boolean || null} */ this.UseMobileCallOut = null; /** * Cell phone answering pattern: 0 - off | 1 - only when offline | 2 - always. * @type {number || null} */ this.UseMobileAccept = null; /** * Agent extension number (starting with 1 to 8, 4 - 6 digits). * @type {string || null} */ this.ExtensionNumber = null; /** * Call forwarding configuration. * @type {ForwardingConfig || null} */ this.ForwardingConfig = null; } /** * @private */ deserialize(params) { if (!params) { return; } this.SdkAppId = 'SdkAppId' in params ? params.SdkAppId : null; this.Email = 'Email' in params ? params.Email : null; this.Name = 'Name' in params ? params.Name : null; this.Phone = 'Phone' in params ? params.Phone : null; this.Nick = 'Nick' in params ? params.Nick : null; this.StaffNo = 'StaffNo' in params ? params.StaffNo : null; this.SkillGroupIds = 'SkillGroupIds' in params ? params.SkillGroupIds : null; this.UseMobileCallOut = 'UseMobileCallOut' in params ? params.UseMobileCallOut : null; this.UseMobileAccept = 'UseMobileAccept' in params ? params.UseMobileAccept : null; this.ExtensionNumber = 'ExtensionNumber' in params ? params.ExtensionNumber : null; if (params.ForwardingConfig) { let obj = new ForwardingConfig(); obj.deserialize(params.ForwardingConfig) this.ForwardingConfig = obj; } } } /** * DescribeAIAgentInfoList response structure. * @class */ class DescribeAIAgentInfoListResponse extends AbstractModel { constructor(){ super(); /** * Intelligent agent information list. * @type {Array.<AIAgentInfo> || null} */ this.AIAgentInfoList = null; /** * Total number of intelligent agents. * @type {number || null} */ this.TotalCount = null; /** * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem. * @type {string || null} */ this.RequestId = null; } /** * @private */ deserialize(params) { if (!params) { return; } if (params.AIAgentInfoList) { this.AIAgentInfoList = new Array(); for (let z in params.AIAgentInfoList) { let obj = new AIAgentInfo(); obj.deserialize(params.AIAgentInfoList[z]); this.AIAgentInfoList.push(obj); } } this.TotalCount = 'TotalCount' in params ? params.TotalCount : null; this.RequestId = 'RequestId' in params ? params.RequestId : null; } } /** * DescribeIvrAudioList response structure. * @class */ class DescribeIvrAudioListResponse extends AbstractModel { constructor(){ super(); /** * Total quantity. * @type {number || null} */ this.TotalCount = null; /** * File information. * @type {Array.<AudioFileInfo> || null} */ this.FileInfo = null; /** * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem. * @type {string || null} */ this.RequestId = null; } /** * @private */ deserialize(params) { if (!params) { return; } this.TotalCount = 'TotalCount' in params ? params.TotalCount : null; if (params.FileInfo) { this.FileInfo = new Array(); for (let z in params.FileInfo) { let obj = new AudioFileInfo(); obj.deserialize(params.FileInfo[z]); this.FileInfo.push(obj); } } this.RequestId = 'RequestId' in params ? params.RequestId : null; } } /** * Query the predictive outbound call task list elements. * @class */ class DescribePredictiveDialingCampaignsElement extends AbstractModel { constructor(){ super(); /** * <Task id>. * @type {number || null} */ this.CampaignId = null; /** * Task name. * @type {string || null} */ this.Name = null; /** * Task status 0 - ready to start, 1 - in progress, 2 - paused, 3 - terminated, 4 - completed. * @type {number || null} */ this.Status = null; /** * Task status reasons 0 - normal, 1 - manually ended, 2 - ended due to overtime. * @type {number || null} */ this.StatusReason = null; /** * Number of called numbers. * @type {number || null} */ this.CalleeCount = null; /** * Number of completed calls. * @type {number || null} */ this.FinishedCalleeCount = null; /** * Running priority of multiple tasks in the same application, from high to low 1 - 5. * @type {number || null} */ this.Priority = null; /** * ID of the used skill group of agents. * @type {number || null} */ this.SkillGroupId = null; } /** * @private */ deserialize(params) { if (!params) { return; } this.CampaignId = 'CampaignId' in params ? params.CampaignId : null; this.Name = 'Name' in params ? params.Name : null; this.Status = 'Status' in params ? params.Status : null; this.StatusReason = 'StatusReason' in params ? params.StatusReason : null; this.CalleeCount = 'CalleeCount' in params ? params.CalleeCount : null; this.FinishedCalleeCount = 'FinishedCalleeCount' in params ? params.FinishedCalleeCount : null; this.Priority = 'Priority' in params ? params.Priority : null; this.SkillGroupId = 'SkillGroupId' in params ? params.SkillGroupId : null; } } /** * SetStaffStatus response structure. * @class */ class SetStaffStatusResponse extends AbstractModel { constructor(){ super(); /** * Specifies the agent status response list. * @type {Array.<SetStaffStatusRspItem> || null} */ this.StaffStatusList = null; /** * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem. * @type {string || null} */ this.RequestId = null; } /** * @private */ deserialize(params) { if (!params) { return; } if (params.StaffStatusList) { this.StaffStatusList = new Array(); for (let z in params.StaffStatusList) { let obj = new SetStaffStatusRspItem(); obj.deserialize(params.StaffStatusList[z]); this.StaffStatusList.push(obj); } } this.RequestId = 'RequestId' in params ? params.RequestId : null; } } /** * http return key * @class */ class ReturnKey extends AbstractModel { constructor(){ super(); /** * * @type {string || null} */ this.Key = null; } /** * @private */ deserialize(params) { if (!params) { return; } this.Key = 'Key' in params ? params.Key : null; } } /** * * @class */ class BearerAuth extends AbstractModel { constructor(){ super(); /** * * @type {string || null} */ this.BearerToken = null; } /** * @private */ deserialize(params) { if (!params) { return; } this.BearerToken = 'BearerToken' in params ? params.BearerToken : null; } } /** * DisableCCCPhoneNumber response structure. * @class */ class DisableCCCPhoneNumberResponse extends AbstractModel { constructor(){ super(); /** * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem. * @type {string || null} */ this.RequestId = null; } /** * @private */ deserialize(params) { if (!params) { return; } this.RequestId = 'RequestId' in params ? params.RequestId : null; } } /** * DescribeProtectedTelCdr response structure. * @class */ class DescribeProtectedTelCdrResponse extends AbstractModel { constructor(){ super(); /** * Total number of call records. * @type {number || null} */ this.TotalCount = null; /** * Call record. * @type {Array.<TelCdrInfo> || null} */ this.TelCdrs = null; /** * Call record. * @type {Array.<TelCdrInfo> || null} */ this.TelCdrList = null; /** * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem. * @type {string || null} */ this.RequestId = null; } /** * @private */ deserialize(params) { if (!params) { return; } this.TotalCount = 'TotalCount' in params ? params.TotalCount : null; if (params.TelCdrs) { this.TelCdrs = new Array(); for (let z in params.TelCdrs) { let obj = new TelCdrInfo(); obj.deserialize(params.TelCdrs[z]); this.TelCdrs.push(obj); } } if (params.TelCdrList) { this.TelCdrList = new Array(); for (let z in params.TelCdrList) { let obj = new TelCdrInfo(); obj.deserialize(params.TelCdrList[z]); this.TelCdrList.push(obj); } } this.RequestId = 'RequestId' in params ? params.RequestId : null; } } /** * ResetExtensionPassword request structure. * @class */ class ResetExtensionPasswordRequest extends AbstractModel { constructor(){ super(); /** * Application id (required) can be found at https://console.cloud.tencent.com/ccc. * @type {number || null} */ this.SdkAppId = null; /** * Extension. * @type {string || null} */ this.ExtensionId = null; } /** * @private */ deserialize(params) { if (!params) { return; } this.SdkAppId = 'SdkAppId' in params ? params.SdkAppId : null; this.ExtensionId = 'ExtensionId' in params ? params.ExtensionId : null; } } /** * DescribeAutoCalloutTask request structure. * @class */ class DescribeAutoCalloutTaskRequest extends AbstractModel { constructor(){ super(); /** * Application id (required) can be found at https://console.cloud.tencent.com/ccc. * @type {number || null} */ this.SdkAppId = null; /** * Task id. * @type {number || null} */ this.TaskId = null; } /** * @private */ deserialize(params) { if (!params) { return; } this.SdkAppId = 'SdkAppId' in params ? params.SdkAppId : null; this.TaskId = 'TaskId' in params ? params.TaskId : null; } } /** * Property of the called. * @class */ class CalleeAttribute extends AbstractModel { constructor(){ super(); /** * Called number. * @type {string || null} */ this.Callee = null; /** * Accompanying data. * @type {string || null} */ this.UUI = null; /** * Parameter. * @type {Array.<Variable> || null} */ this.Variables = null; } /** * @private */ deserialize(params) { if (!params) { return; } this.Callee = 'Callee' in params ? params.Callee : null; this.UUI = 'UUI' in params ? params.UUI : null; if (params.Variables) { this.Variables = new Array(); for (let z in params.Variables) { let obj = new Variable(); obj.deserialize(params.Variables[z]); this.Variables.push(obj); } } } } /** * CreateUserSig response structure. * @class */ class CreateUserSigResponse extends AbstractModel { constructor(){ super(); /** * Signature result. * @type {string || null} */ this.UserSig = null; /** * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem. * @type {string || null} */ this.RequestId = null; } /** * @private */ deserialize(params) { if (!params) { return; } this.UserSig = 'UserSig' in params ? params.UserSig : null; this.RequestId = 'RequestId' in params ? params.RequestId : null; } } /** * CreateAICall request structure. * @class */ class CreateAICallRequest extends AbstractModel { constructor(){ super(); /** * Application ID (required) can be found at https://console.cloud.tencent.com/ccc. * @type {number || null} */ this.SdkAppId = null; /** * Called number. * @type {string || null} */ this.Callee = null; /** * Model API protocol type. currently compatible with four protocol types:. -OpenAI protocol (including GPT, hunyuan, DeepSeek, etc.): "OpenAI". -Azure protocol: "azure". -Specifies the "Minimax" protocol. -Dify protocol: "dify". * @type {string || null} */ this.LLMType = null; /** * Model API key, for authentication information, please refer to the respective model's official website - OpenAI protocol: [GPT](https://help.openai.com/en/articles/4936850-where-do-i-find-my-openai-api-key), [DeepSeek](https://api-docs.deepseek.com/zh-cn/); - Azure protocol: [Azure GPT](https://learn.microsoft.com/en-us/azure/ai-services/openai/chatgpt-quickstart?tabs=command-line%2Ctypescript%2Cpython-new&pivots=programming-language-studio#key-settings); - Minimax:[Minimax](https://platform.minimaxi.com/document/Fast%20access?key=66701cf51d57f38758d581b2) * @type {string || null} */ this.APIKey = null; /** * Model interface address - OpenAI protocol GPT:"https://api.openai.com/v1/" Deepseek:"https://api.deepseek.com/v1" - Azure protocol "https://{your-resource-name}.openai.azure.com?api-version={api-version}" - Minimax protocol "https://api.minimax.chat/v1" * @type {string || null} */ this.APIUrl = null; /** * ## Identity You are Kate from the appointment department at Retell Health calling Cindy over the phone to prepare for the annual checkup coming up. You are a pleasant and friendly receptionist caring deeply for the user. You don't provide medical advice but would use the medical knowledge to understand user responses. ## Style Guardrails Be Concise: Respond succinctly, addressing one topic at most. Embrace Variety: Use diverse language and rephrasing to enhance clarity without repeating content. Be Conversational: Use everyday language, making the chat feel like talking to a friend. Be Proactive: Lead the conversation, often wrapping up with a question or next-step suggestion. Avoid multiple questions in a single response. Get clarity: If the user only partially answers a question, or if the answer is unclear, keep asking to get clarity. Use a colloquial way of referring to the date (like Friday, January 14th, or Tuesday, January 12th, 2024 at 8am). ## Response Guideline Adapt and Guess: Try to understand transcripts that may contain transcription errors. Avoid mentioning "transcription error" in the response. Stay in Character: Keep conversations within your role's scope, guiding them back creatively without repeating. Ensure Fluid Dialogue: Respond in a role-appropriate, direct manner to maintain a smooth conversation flow. ## Task You will follow the steps below, do not skip steps, and only ask up to one question in response. If at any time the user showed anger or wanted a human agent, call transfer_call to transfer to a human representative. 1. Begin with a self-introduction and verify if callee is Cindy. - if callee is not Cindy, call end_call to hang up, say sorry for the confusion when hanging up. - if Cindy is not available, call end_call politely to hang up, say you will call back later when hanging up. 2. Inform Cindy she has an annual body check coming up on April 4th, 2024 at 10am PDT. Check if Cindy is available. - If not, tell Cindy to reschedule online and jump to step 5. 3. Ask Cindy if there's anything that the doctor should know before the annual checkup. - Ask followup questions as needed to assess the severity of the issue, and understand how it has progressed. 4. Tell Cindy to not eat or drink that day before the checkup. Also tell Cindy to give you a callback if there's any changes in health condition. 5. Ask Cindy if she has any questions, and if so, answer them until there are no questions. - If user asks something you do not know, let them know you don't have the answer. Ask them if they have any other questions. - If user do not have any questions, call function call_end to hang up. * @type {string || null} */ this.SystemPrompt = null; /** * Model name, such as - OpenAI protocol "gpt-4o-mini","gpt-4o","deepseek-chat"; - Azure protocol "gpt-4o-mini", "gpt-4o"; - Minimax protocol "deepseek-chat". * @type {string || null} */ this.Model = null; /** * The following voice parameter values are available by default. If you wish to customize the voice type, please leave VoiceType blank and configure it in the CustomTTSConfig parameter. Chinese: ZhiMei: Zhimei, customer service female voice ZhiXi: Zhixi, general female voice ZhiQi: Zhiqi, customer service female voice ZhiTian: Zhitian, female child voice AiXiaoJing: Ai Xiaojing, dialogue female voice English: WeRose:English Female Voice Monika:English Female Voice Japanese: Nanami Korean: SunHi Indonesian (Indonesia): Gadis Malay (Malaysia): Yasmin Tamil (Malaysia): Kani Thai (Thailand): Achara Vietnamese (Vietnam): HoaiMy * @type {string || null} */ this.VoiceType = null; /** * Caller number list * @type {Array.<string> || null} */ this.Callers = null; /** * Used to set the AI Agent Welcome Message. * @type {string || null} */ this.WelcomeMessage = null; /** * 0: Use welcomeMessage (if empty, the callee speaks first; if not empty, the bot speaks first) 1: Use AI to automatically generate welcomeMessage and speak first based on the prompt * @type {number || null} */ this.WelcomeType = null; /** * 0: interruptible by default, 2: high priority non-interruptible. * @type {number || null} */ this.WelcomeMessagePriority = null; /** * Maximum Waiting Duration (milliseconds), default is 60 seconds, if the user does not speak within this time, the call is automatically terminated * @type {number || null} */ this.MaxDuration = null; /** * ASR Supported Languages, default is "zh" Chinese, Fill in the array with up to 4 languages, the first is the primary language for recognition, followed by optional languages, Note: When the primary language is a Chinese dialect, optional languages are invalid Currently, the supported languages are as follows. The English name of the language is on the left side of the equals sign, and the value to be filled in the Language field is on the right side, following ISO639: 1. Chinese = "zh" # Chinese 2. Chinese_TW = "zh-TW" # Taiwan (China) 3. Chinese_DIALECT = "zh-dialect" # Chinese Dialect 4. English = "en" # English 5. Vietnamese = "vi" # Vietnamese 6. Japanese = "ja" # Japanese 7. Korean = "ko" # Korean 8. Indonesia = "id" # Indonesian 9. Thai = "th" # Thai 10. Portuguese = "pt" # Portuguese 11. Turkish = "tr" # Turkish 12. Arabic = "ar" # Arabic 13. Spanish = "es" # Spanish 14. Hindi = "hi" # Hindi 15. French = "fr" # French 16. Malay = "ms" # Malay 17. Filipino = "fil" # Filipino 18. German = "de" # German 19. Italian = "it" # Italian 20. Russian = "ru" # Russian * @type {Array.<string> || null} */ this.Languages = null; /** * Interrupt ai speaking mode. default is 0. 0 indicates automatic interruption and 1 indicates no interruption. * @type {number || null} */ this.InterruptMode = null; /** * Used when InterruptMode is 0, unit in milliseconds, default is 500ms. It means that the server-side detects ongoing vocal input for the InterruptSpeechDuration milliseconds and then interrupts. * @type {number || null} */ this.InterruptSpeechDuration = null; /** * Whether the model supports (or enables) call_end function calling * @type {boolean || null} */ this.EndFunctionEnable = null; /** * Effective when EndFunctionEnable is true; the description of call_end function calling, default is "End the call when user has to leave (like says bye) or you are instructed to do so." * @type {string || null} */ this.EndFunctionDesc = null; /** * Whether the model supports (or enables) transfer_to_human function calling. * @type {boolean || null} */ this.TransferFunctionEnable = null; /** * Takes effect when transferfunctionenable is true: transfer to human configuration. * @type {Array.<AITransferItem> || null} */ this.TransferItems = null; /** * The duration after which the user hasn't spoken to trigger a notification, minimum 10 seconds, default 10 seconds * @type {number || null} */ this.NotifyDuration = null; /** * The AI prompt when NotifyDuration has passed without the user speaking, default is "Sorry, I didn't hear you clearly. Can you repeat that?" * @type {string || null} */ this.NotifyMessage = null; /** * Maximum number of times to trigger ai prompt sound, unlimited by default. * @type {number || null} */ this.NotifyMaxCount = null; /** * <p>Either the VoiceType field or a custom TTS is required. this uses your own custom TTS, while VoiceType provides some built-in voice types.</p> <ul> <li>Tencent TTS<br> For configuration, see <a href="https://www.tencentcloud.com/zh/document/product/1154/48916" target="_blank">tencent cloud TTS documentation link</a></li> </ul> <div class="v-md-pre-wrapper copy-code-mode v-md-pre-wrapper- extra-class"><pre class="v-md-prism-"><code>{ "TTSType": "tencent", // String TTS type. currently supports "tencent" and "minixmax". the rest manufacturers are under support. "AppId": "your application ID", // String required. "SecretId": "your key ID", // String required. "SecretKey": "your Key", // String required. "VoiceType": 101001, // Integer required. the voice ID, including standard timbre and premium timbre. premium timbre has higher fidelity and different pricing from standard timbre. please refer to the text to speech billing overview. for the complete supported timbre list, see the text to speech timbre list. "Speed": 1.25, // Integer optional, speaking rate, value range: [-2,6], respectively represent different speaking rates: -2: 0.6x -1: 0.8x 0: 1.0x (default) 1: 1.2x 2: 1.5x 6: 2.5x. if more refined speaking rates are needed, up to 2 decimal places can be retained, such as 0.5, 1.25, or 2.81. for parameter value to actual speech Speed conversion, refer to speech Speed switch. "Volume": 5, // Integer optional. specifies the Volume level. value range: [0,10], corresponding to 11 severity levels respectively. default value: 0, which represents normal Volume. "PrimaryLanguage": 1, // Integer option primary language 1-chinese (default) 2-english 3-japanese. "FastVoiceType": "xxxx" // optional parameter. parameters for quick voice clone. } </code></pre> </div><ul> <li>Minimax TTS<br> For configuration, refer to the <a href="https://platform.minimaxi.com/document/T2a%20V2?key=66719005a427f0c8a5701643" target="_blank">Minimax TTS documentation link</a>. note that Minimax TTS has frequency limits. overfrequency may result in response delays. see the <a href="https://platform.minimaxi.com/document/Rate%20limits?key=66b19417290299a26b234572" target="_blank">Minimax TTS frequency limit documentation link</a>.</li> </ul> <div class="v-md-pre-wrapper copy-code-mode v-md-pre-wrapper- extra-class"><pre class="v-md-prism-"><code>{ "TTSType": "minimax", // String TTS type. "Model": "speech-01-turbo", "APIUrl": "https://api.minimax.chat/v1/t2a_v2", "APIKey": "eyxxxx", "GroupId": "181000000000000", "VoiceType":"female-tianmei", "Speed": 1.2 } </code></pre> </div><ul> <li>Volcano TTS</li> </ul> <p>Configure the timbre type. see <a href="https://www.volcengine.com/docs/6561/162929" target="_blank">volcano TTS documentation link</a><br> Text to speech timbre list - voice technology - volcano engine. Large model TTS timbre list - voice technology - volcano engine</p> <div class="v-md-pre-wrapper copy-code-mode v-md-pre-wrapper- extra-class"><pre class="v-md-prism-"><code>{ "TTSType": "volcengine", // required: String TTS type. "AppId": "xxxxxxxx", // required: String AppId assigned by volcano engine. "Token": "TY9d4sQXHxxxxxxx", // required: String type, access Token for volcano engine. "Speed": 1.0, // optional parameter. speaking rate, defaults to 1.0. "Volume": 1.0, // optional parameter, Volume, defaults to 1.0. "Cluster": "volcano_tts", // optional parameter, business Cluster, is selected by default. "VoiceType": "zh_male_aojiaobazong_moon_bigtts" // timbre type, defaults to the TTS voice type of the large model. if using ordinary text to speech, you need to fill in the corresponding voice type. input errors in voice type can cause no sound. } </code></pre> </div><ul> <li>Azure TTS<br> For configuration, refer to the <a href="https://docs.azure.cn/zh-cn/ai-services/speech-service/speech-synthesis-markup-voice" target="_blank">AzureTTS documentation link</a></li> </ul> <div class="v-md-pre-wrapper copy-code-mode v-md-pre-wrapper- extra-class"><pre class="v-md-prism-"><code>{ "TTSType": "azure", // required: String TTS type. "SubscriptionKey": "xxxxxxxx", // required: String subscription Key. "Region": "chinanorth3", // required: String the Region to subscribe to. "VoiceName": "zh-CN-XiaoxiaoNeural", // required: String specifies the required VoiceName. "Language": "zh-CN", // required: String specifies the synthesis Language. "Rate": 1 // optional: float, speech speed. value range: 0.5-2. default is 1. } </code></pre> </div><ul> <li>Custom TTS</li> </ul> <p>For the specific protocol specification, refer to <a href="https://doc.weixin.qq.com/doc/w3_ANQAiAbdAFwHILbJBmtSqSbV1WZ3L?scode=AJEAIQdfAAo5a1xajYANQAiAbdAFw " target="_blank">tencent documentation</a></p> <div class="v-md-pre-wrapper copy-code-mode v-md-pre-wrapper- extra-class"><pre class="v-md-prism-"><code>{ "TTSType": "custom", // String required. "APIKey": "APIKey", // String required. be used to authenticate. "APIUrl": "http://0.0.0.0:8080/stream-audio" // String, required, TTS API URL. "AudioFormat": "wav", // String, optional, specifies the desired audio format, such as mp3, ogg_opus, pcm, wav. defaults to wav. currently only support pcm and wav. "SampleRate": 16000, // Integer, optional, audio sample rate, defaults to 16000 (16k), recommended value is 16000. "AudioChannel": 1, // Integer, optional, audio channel quantity. valid values: 1 or 2. default is 1. } </code></pre> </div> * @type {string || null} */ this.CustomTTSConfig = null; /** * Prompt word variable. * @type {Array.<Variable> || null} */ this.PromptVariables = null; /** * Automatic speech recognition vad time ranges from 240 to 2000, with a default of 1000, measured in milliseconds. smaller values will make automatic speech recognition segment faster. * @type {number || null} */ this.VadSilenceTime = null; /** * Call content extraction configuration. * @type {Array.<AICallExtractConfigElement> || null} */ this.ExtractConfig = null; /** * Model temperature control. * @type {number || null} */ this.Temperature = null; /** * Common variable: <p>prompt content variable</p> <p>welcome message variable</p> <p>welcome message delay playback (in seconds): welcome-message-delay</p> <p>dify variable</p>. dify-inputs-xxx specifies the inputs variable for dify. 2. the dify-inputs-user specifies the user value for dify. 3. dify-inputs-conversation_id is the conversation_id value of dify. * @type {Array.<Variable> || null} */ this.Variables = null; /** * Specifies the model topP. * @type {number || null} */ this.TopP = null; /** * The vad far-field voice suppression capacity (does not impact asr recognition performance). value range: [0, 3]. default is 0. recommended setting: 2 for better far-field voice suppression. * @type {number || null} */ this.VadLevel = null; /** * Transition. * @type {ToneWordInfo || null} */ this.ToneWord = null; /** * Compliant prompt sound. This parameter set to true (default) means call initiation plays morse code, with a Note that the conversation content is AI-generated. Passing 'false' to this parameter disables the compliance prompt sound. passing 'false' signifies you have read and agree to the following agreement:. Our side fully acknowledges and understands that according to the laws and regulations specified in the "cybersecurity law" (https://www.cac.gov.cn/2016-11/07/c_1119867116.htm), "provision on administration of deep synthesis of internet-based information service" (https://www.gov.cn/zhengce/zhengceku/2022-12/12/content_5731431.htm), "interim measures for the management of generative artificial intelligence services" (https://www.gov.cn/zhengce/zhengceku/202307/content_6891752.htm), and "measures for the identification of artificial intelligence-generated synthetic content" (https://www.gov.cn/zhengce/zhengceku/202503/content_7014286.htm), explicit and implicit identification should be added to ai-generated synthetic content. based on business requirements, we request tencent cloud not to add explicit identification to generated synthetic content. we commit to lawful and compliant use of generated synthetic content to avoid causing confusion or misunderstanding. if the generated synthetic content is used to provide services to the public or spread over networks, we will proactively add explicit identification that complies with legal provisions and national standards, and bear the legal obligation for identifying ai-generated synthetic content. our side will fully assume all related responsibilities if adverse consequences arise from failure to appropriately and reasonably fulfill the obligation of ai content identification, or if penalties are imposed by the competent department. * @type {boolean || null} */ this.EnableComplianceAudio = null; /** * Whether to enable voice mail recognition. * @type {boolean || null} */ this.EnableVoicemailDetection = null; /** * Detect behavior when the peer is voice mail. this parameter is valid only when EnableVoicemailDetection is True. 0: hang up the phone (default). * @type {number || null} */ this.VoicemailAction = null; /** * Large model extended parameter, format is json string. * @type {string || null} */ this.LLMExtraBody = null; /** * Maximum call duration, default not limited. unit: milliseconds (ms). * @type {number || null} */ this.MaxCallDurationMs = null; /** * Maximum ringing duration. auto hang up when the duration threshold is reached. **only own number supports current parameter.**. * @type {number || null} */ this.MaxRingTimeoutSecond = null; /** * Ambient sound scenario. if so, leave it blank. Coffee_shops: chat in the coffee shop communication environment with background. busy_office: customer service center. * @type {string || null} */ this.AmbientSoundType = null; /** * Ambient sound volume. if AmbientSoundType is empty, this field is left blank. value ranges from [0,2]. the lower the value, the softer the ambient sound; the higher the value, the louder the ambient sound. if not set, use the default value 1. * @type {number || null} */ this.AmbientSoundVolume = null; } /** * @private */ deserialize(params) { if (!params) { return; } this.SdkAppId = 'SdkAppId' in params ? params.SdkAppId : null; this.Callee = 'Callee' in params ? params.Callee : null; this.LLMType = 'LLMType' in params ? params.LLMType : null; this.APIKey = 'APIKey' in params ? params.APIKey : null; this.APIUrl = 'APIUrl' in params ? params.APIUrl : null; this.SystemPrompt = 'SystemPrompt' in params ? params.SystemPrompt : null; this.Model = 'Model' in params ? params.Model : null; this.VoiceType = 'VoiceType' in params ? params.VoiceType : null; this.Callers = 'Callers' in params ? params.Callers : null; this.WelcomeMessage = 'WelcomeMessage' in params ? params.WelcomeMessage : null; this.WelcomeType = 'WelcomeType' in params ? params.WelcomeType : null; this.WelcomeMessagePriority = 'WelcomeMessagePriority' in params ? params.WelcomeMessagePriority : null; this.MaxDuration = 'MaxDuration' in params ? params.MaxDuration : null; this.Languages = 'Languages' in params ? params.Languages : null; this.InterruptMode = 'InterruptMode' in params ? params.InterruptMode : null; this.InterruptSpeechDuration = 'InterruptSpeechDuration' in params ? params.InterruptSpeechDuration : null; this.EndFunctionEnable = 'EndFunctionEnable' in params ? params.EndFunctionEnable : null; this.EndFunctionDesc = 'EndFunctionDesc' in params ? params.EndFunctionDesc : null; this.TransferFunctionEnable = 'TransferFunctionEnable' in params ? params.TransferFunctionEnable : null; if (params.TransferItems) { this.TransferItems = new Array(); for (let z in params.TransferItems) { let obj = new AITransferItem(); obj.deserialize(params.TransferItems[z]); this.TransferItems.push(obj); } } this.NotifyDuration = 'NotifyDuration' in params ? params.NotifyDuration : null; this.NotifyMessage = 'NotifyMessage' in params ? params.NotifyMessage : null; this.NotifyMaxCount = 'NotifyMaxCount' in params ? params.NotifyMaxCount : null; this.CustomTTSConfig = 'CustomTTSConfig' in params ? params.CustomTTSConfig : null; if (params.PromptVariables) { this.PromptVariables = new Array(); for (let z in params.PromptVariables) { let obj = new Variable(); obj.deserialize(params.PromptVariables[z]); this.PromptVariables.push(obj); } } this.VadSilenceTime = 'VadSilenceTime' in params ? params.VadSilenceTime : null; if (params.ExtractConfig) { this.ExtractConfig = new Array(); for (let z in params.ExtractConfig) { let obj = new AICallExtractConfigElement(); obj.deserialize(params.ExtractConfig[z]); this.ExtractConfig.push(obj); } } this.Temperature = 'Temperature' in params ? params.Temperature : null; if (params.Variables) { this.Variables = new Array(); for (let z in params.Variables) { let obj = new Variable(); obj.deserialize(params.Variables[z]); this.Variables.push(obj); } } this.TopP = 'TopP' in params ? params.TopP : null; this.VadLevel = 'VadLevel' in params ? params.VadLevel : null; if (params.ToneWord) { let obj = new ToneWordInfo(); obj.deserialize(params.ToneWord) this.ToneWord = obj; } this.EnableComplianceAudio = 'EnableComplianceAudio' in params ? params.EnableComplianceAudio : null; this.EnableVoicemailDetection = 'EnableVoicemailDetection' in params ? params.EnableVoicemailDetection : null; this.VoicemailAction = 'VoicemailAction' in params ? params.VoicemailAction : null; this.LLMExtraBody = 'LLMExtraBody' in params ? params.LLMExtraBody : null; this.MaxCallDurationMs = 'MaxCallDurationMs' in params ? params.MaxCallDurationMs : null; this.MaxRingTimeoutSecond = 'MaxRingTimeoutSecond' in params ? params.MaxRingTimeoutSecond : null; this.AmbientSoundType = 'AmbientSoundType' in params ? params.AmbientSoundType : null; this.AmbientSoundVolume = 'AmbientSoundVolume' in params ? params.AmbientSoundVolume : null; } } /** * CreateAdminURL response structure. * @class */ class CreateAdminURLResponse extends AbstractModel { constructor(){ super(); /** * Log-In link. * @type {string || null} */ this.URL = null; /** * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem. * @type {string || null} */ this.RequestId = null; } /** * @private */ deserialize(params) { if (!params) { return; } this.URL = 'URL' in params ? params.URL : null; this.RequestId = 'RequestId' in params ? params.RequestId : null; } } /** * PausePredictiveDialingCampaign request structure. * @class */ class PausePredictiveDialingCampaignRequest extends AbstractModel { constructor(){ super(); /** * Application id (required) can be found at https://console.cloud.tencent.com/ccc. * @type {number || null} */ this.SdkAppId = null; /** * Task id. * @type {number || null} */ this.CampaignId = null; } /** * @private */ deserialize(params) { if (!params) { return; } this.SdkAppId = 'SdkAppId' in params ? params.SdkAppId : null; this.CampaignId = 'CampaignId' in params ? params.CampaignId : null; } } /** * CreateCallOutSession response structure. * @class */ class CreateCallOutSessionResponse extends AbstractModel { constructor(){ super(); /** * Newly created session id. * @type {string || null} */ this.SessionId = null; /** * The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem. * @type {string || null} */ this.RequestId = null; } /** * @private */ deserialize(params) { if (!params) { return; } this.SessionId = 'SessionId' in params ? params.SessionId : null; this.RequestId = 'RequestId' in params ? params.RequestId : null; } } /** * Intelligent agent