• [问题求助] 外部APP需要对接HCS的CMDB,OC北向接口域名与外网网络是相通的么?
    根据以下文档,如果在外部APP通过接口去对接CMDB,其中会使用到OC北向接口域名,与外网是否是天然相通的呢?还是需要做相应的链路打通操作https://bbs.huaweicloud.com/forum/thread-163821-1-1.html
  • [案例共创] 【案例共创】第3期 基于华为开发者空间+DeepSeek完成AI应用构建开发最佳实践
    【案例共创】第3期 基于华为开发者空间+DeepSeek完成AI应用构建开发实践 1)构建的应用需要完成发布,有应用在线截图。按文档操作,可以轻松实现模型的部署,并可以调用使用   这里做一个demo,帮我生成一个双人对打游戏,结果可以进行操作,“上、下、左、右”的操作,进行配图就可以正常使用了。      2)案例场景和方案以及用到的华为云产品或者开源框架简述。整体架构以及开发环境:  案例场景为华为开发者空间+DeepSeek完成AI应用构建开发实践这里涉及到的华为云产品:1、华为云开发者空间的云主机,类似华为云桌面。CPU架构:X86规格:2 vCPUs 4 GB操作系统:Ubuntu系统镜像:公共镜像 Ubuntu 22.04 Server 定制版      2、华为云ModelArts Studio 产品,   领取免费试用的Tokens   做完实验还剩下的调用量   3)开发过程实际操作描述(文字描述+截图+代码)。在模型部署和调用的过程中可能会缺少依赖,把缺少的依赖下载安装好,就可以正常使用了。  可生成的交互界面程序  试了试通用的问答,制定一个健康的生活计划,内容还是很丰富的。  **目标**:均衡营养,保持健康体重,增强免疫力。**建议**:- **早餐**:富含蛋白质和纤维的食物,如全麦面包、鸡蛋、牛奶、燕麦粥。- **午餐**:均衡搭配碳水化合物、蛋白质和蔬菜,如米饭、鸡胸肉、西兰花、胡萝卜。- **晚餐**:轻食为主,避免高脂肪和高热量食物,如鱼类、豆腐、绿叶蔬菜。- **零食**:选择健康零食,如坚果、水果、酸奶。- **饮水**:每天至少饮用8杯水,保持身体水分平衡。- **避免**:高糖、高脂肪、加工食品和过量酒精。 **示例食谱**:- **周一**:早餐 - 燕麦粥 + 鸡蛋;午餐 - 鸡胸肉 + 西兰花 + 米饭;晚餐 - 鱼类 + 绿叶蔬菜。- **周二**:早餐 - 全麦面包 + 牛奶;午餐 - 豆腐 + 胡萝卜 + 米饭;晚餐 - 豆腐 + 绿叶蔬菜。 #### 2. 运动计划**目标**:增强体能,保持心血管健康,提高肌肉力量。 **建议**:- **有氧运动**:每周至少3次,每次30分钟,如跑步、游泳、骑自行车。- **力量训练**:每周2次,每次20分钟,如举重、俯卧撑、仰卧起坐。- **灵活性训练**:每周2次,每次15分钟,如瑜伽、拉伸。- **日常活动**:增加日常活动量,如步行、爬楼梯。 **示例运动安排**:- **周一**:跑步30分钟 + 瑜伽15分钟。- **周二**:力量训练20分钟 + 步行30分钟。- **周三**:游泳30分钟 + 拉伸15分钟。- **周四**:骑自行车30分钟 + 力量训练20分钟。- **周五**:跑步30分钟 + 瑜伽15分钟。 #### 3. 学习计划**目标**:持续学习,提高知识水平,保持大脑活跃。 **建议**:- **每日学习**:每天至少学习1小时,涵盖专业知识和兴趣爱好。- **阅读**:每周阅读一本书,涵盖不同领域,如科技、文学、历史。- **在线课程**:每月完成一个在线课程,提升专业技能或学习新领域。- **笔记与总结**:每天记录学习笔记,定期总结学习成果。 **示例学习安排**:- **周一**:阅读科技书籍1小时 + 在线课程30分钟。- **周二**:专业知识学习1小时 + 笔记整理30分钟。- **周三**:阅读文学书籍1小时 + 在线课程30分钟。- **周四**:历史书籍阅读1小时 + 学习总结30分钟。- **周五**:专业技能学习1小时 + 笔记整理30分钟。 ### 计划执行与调整- **每周评估**:每周评估饮食、运动和学习计划的执行情况,根据需要进行调整。- **保持灵活性**:根据个人情况和外部环境的变化,灵活调整计划内容。- **长期坚持**:健康生活计划需要长期坚持,逐步形成良好习惯。 如果你有任何具体需求或需要进一步调整计划,请告诉我!4)案例实操需要完整体现,读者可根据案例上手并体验。 按“云主机调用DeepSeek实现代码自动生成”这个操作真的很容易就实现了。
  • [问题求助] Openeye API的美颜及背景图功能
    【问题来源】 北京朗泰宏盛信息技术有限公司【问题简要】【必填】    Openeye  H5 对接接口 关于美颜和背景图相关接口【问题类别】【必填】    【Openeye】【AICC解决方案版本】【必填】    【AICC可选择版本:AICC 24.200】    【UAP可选择版本:V300R001C02SPC125】    【CTI可选择版本:V300R008C25SPC215】【期望解决时间】【3月21】【问题现象描述】【必填】         Openeye H5 接口文档中没有提及, 美颜和背景图相关内容的内容,客户在座席端对接openeye需要使用此功能,请问是否有其他的配置项目或者参数可以统一配置?      
  • [问题求助] AICC OPENEYE 美颜及背景图接口
    AICC 24.200环境用户需要对接使用openeye H5的接口 实现座席端 软电话能够使用视频功能只在openeye的应用端有美颜及背景图功能,在接口中没有对应功能的API 请问是否有其他的全局配置或者参数可以实现美颜及背景图功能?
  • [问题求助] 如何实现获取设备数据经过处理判断后下发命令
    我是初学者,对于平台规则并不是很了解,也没有思路。初步设想是调用api实现查询设备属性和命令下发。我想实现获取设备的信息然后经过(模糊逻辑)判断决定操控设备是否浇水与排水。参数有1.温度Temperature 2.光照Luminance 3.土壤湿度Humidity。浇水命令Agriculture_Control_Motor(枚举值ON,OFF)与排水的命令Agriculture_Control_light(枚举值ON,OFF)以下代码是我经过查询文档以及询问ai所编写的代码# -*- coding:utf-8 -*-import jsonimport osfrom huaweicloudsdkcore.auth.credentials import BasicCredentialsfrom huaweicloudsdkcore.auth.credentials import DerivedCredentialsfrom huaweicloudsdkcore.region.region import Region as coreRegionfrom huaweicloudsdkcore.exceptions import exceptionsfrom huaweicloudsdkiotda.v5 import *def handler (event, context):    ak = os.environ["CLOUD_SDK_AK"]      sk = os.environ["CLOUD_SDK_SK"]            iotdaEndpoint = "<>"  # 从控制台获取的IoTDA平台接入地址(应用侧)    projectId = "{}"  # 华为云项目ID(需替换)    # ========================== 创建凭证对象 ==========================    # 创建基础凭证(AK/SK + 项目ID)     credentials = BasicCredentials(ak, sk, projectId).with_derived_predicate(DerivedCredentials.get_default_derived_predicate())    client = IoTDAClient.new_builder() \        .with_credentials(credentials) \        .with_region(coreRegion(id="cn-north-4", endpoint=endpoint)) \        .build()        # ========================== 发起设备属性查询 ==========================       request = ListPropertiesRequest()  # 创建属性查询请求对象    request.device_id = "{}"  # 设置目标设备ID(需替换实际设备ID)    response = client.list_properties(request)  # 发送查询请求    if response.properties:        properties = response.properties                      temperature = properties.get("Temperature")        humidity = properties.get("Humidity")        light= properties.get("Luminance")  #以下是数据处理部分          h_dry = max(0.0, 1.0 - abs(humidity - 30)/20.0)  # 覆盖10-50        h_mod = max(0.0, 1.0 - abs(humidity - 50)/20.0)  # 覆盖30-70        h_wet = max(0.0, 1.0 - abs(humidity - 70)/30.0)  # 覆盖40-100        # 温度隶属函数(中心点:20/50/80)        t_cold = max(0.0, 1.0 - abs(temperature - 20)/20.0)        t_mild = max(0.0, 1.0 - abs(temperature - 50)/30.0)        t_hot  = max(0.0, 1.0 - abs(temperature - 80)/20.0)        # 光照隶属函数(中心点:30/60/90)        l_low  = max(0.0, 1.0 - abs(light - 30)/30.0)        l_mod  = max(0.0, 1.0 - abs(light - 60)/30.0)        l_high = max(0.0, 1.0 - abs(light - 90)/30.0)        # 三维规则引擎(保持原规则结构)        water_power = (        h_dry * (0.8*t_cold + 1.0*t_mild + 1.2*t_hot) *                 (0.3*l_low + 0.6*l_mod + 0.8*l_high)        )           # 排水规则(湿润主导)        drain_power = (        h_wet * (1.0*t_cold + 0.6*t_mild + 0.2*t_hot) *                 (1.0*l_low + 0.6*l_mod + 0.2*l_high)        )   #数据处理部分完毕             # 双决策输出        water_power > 35.0,                        # 阈值通过实验校准    浇水决策        drain_power > 25.0                                #排水决策    if result_water:               # 创建设备命令请求对象        request = CreateCommandRequest()        request1 = CreateCommandRequest()        request.device_id = "{67c3e47d8e04aa0690b96404_20030306}"  # 需替换为目标设备ID        request1.device_id = "{67c3e47d8e04aa0690b96404_20030306}"        # 构造命令参数体        request.body = DeviceCommandRequest(        paras="{\"value\":\"OFF\"}",  # 手动构造JSON参数(建议改用json.dumps)        command_name="Agriculture_Control_light",        # 命令名称(需与设备模型定义一致)        service_id="Agriculture"           # 服务ID(需与设备模型定义一致)        )               # 发送命令并获取响应        response = client.create_command(request)        request1.body = DeviceCommandRequest(            paras="{\"value\":\"ON\"}",  # 手动构造JSON参数(建议改用json.dumps)            command_name="Agriculture_Control_Motor",        # 命令名称(需与设备模型定义一致)            service_id="Agriculture"           # 服务ID(需与设备模型定义一致)        )        response1 = client.create_command(request1)    elif result_drain:                # 创建设备命令请求对象        request = CreateCommandRequest()        request1 = CreateCommandRequest()        request.device_id = "{67c3e47d8e04aa0690b96404_20030306}"  # 需替换为目标设备ID        request1.device_id = "{67c3e47d8e04aa0690b96404_20030306}"        # 构造命令参数体        request.body = DeviceCommandRequest(            paras="{\"value\":\"ON\"}",  # 手动构造JSON参数(建议改用json.dumps)            command_name="Agriculture_Control_light",        # 命令名称(需与设备模型定义一致)            service_id="Agriculture"           # 服务ID(需与设备模型定义一致)        )               # 发送命令并获取响应        response = client.create_command(request)        request1.body = DeviceCommandRequest(            paras="{\"value\":\"OFF\"}",  # 手动构造JSON参数(建议改用json.dumps)            command_name="Agriculture_Control_Motor",        # 命令名称(需与设备模型定义一致)            service_id="Agriculture"           # 服务ID(需与设备模型定义一致)        )        response1 = client.create_command(request1)    else:               # 创建设备命令请求对象        request = CreateCommandRequest()        request1 = CreateCommandRequest()        request.device_id = "{67c3e47d8e04aa0690b96404_20030306}"  # 需替换为目标设备ID        request1.device_id = "{67c3e47d8e04aa0690b96404_20030306}"        # 构造命令参数体        request.body = DeviceCommandRequest(            paras="{\"value\":\"OFF\"}",  # 手动构造JSON参数(建议改用json.dumps)            command_name="Agriculture_Control_light",        # 命令名称(需与设备模型定义一致)            service_id="Agriculture"           # 服务ID(需与设备模型定义一致)        )               # 发送命令并获取响应        response = client.create_command(request)        request1.body = DeviceCommandRequest(            paras="{\"value\":\"OFF\"}",  # 手动构造JSON参数(建议改用json.dumps)            command_name="Agriculture_Control_Motor",        # 命令名称(需与设备模型定义一致)            service_id="Agriculture"           # 服务ID(需与设备模型定义一致)        )        response1 = client.create_command(request1)    return {        "statusCode": 200,        "isBase64Encoded": False,        "body": json.dumps(event),        "headers": {            "Content-Type": "application/json"        }    }以下是报错以及日志函数返回{ "errorMessage": "function entry exception, error: failed to import module 'index'(No module named 'huaweicloudsdkiotda')", "errorType": "ModuleNotFoundError", "stackTrace": [ "File \"./index.py\", line 10, in <module>", " from huaweicloudsdkiotda.v5 import *" ] }查看错误详情日志2025-03-13T15:09:59Z Start invoke request 'b43b398b-7ce0-40f9-a5cb-428569be312b', version: latest2025-03-13T15:09:59Z b43b398b-7ce0-40f9-a5cb-428569be312b ERROR function entry exception, error: failed to import module 'index'(No module named 'huaweicloudsdkiotda')Traceback (most recent call last):File "./index.py", line 10, in <module>from huaweicloudsdkiotda.v5 import *ModuleNotFoundError: No module named 'huaweicloudsdkiotda' 2025-03-13T15:09:59Z Finish invoke request 'b43b398b-7ce0-40f9-a5cb-428569be312b'(invoke Failed), duration: 61.328ms, billing duration: 62ms, memory used: 39.965MB, billing memory: 128MB, cpu used: 0.022U, storage used: 0.039MB   
  • [技术干货] 零基础入门API测试:Postman v11安装与使用全攻略(附下载链接)
    ​一、软件定位与核心功能Postman是全球领先的API开发与测试工具,支持REST、SOAP、GraphQL等协议调试,2025年最新版v11新增AI智能生成测试用例、多环境变量同步等功能。适用于以下场景:前后端分离开发中的接口联调自动化测试脚本编写接口文档自动生成团队协作共享API资源二、安装环境准备1. 系统要求组件最低配置推荐配置操作系统Windows 7Windows 10/11内存4GB8GB磁盘空间500MB1GB SSD2. 网络要求确保443端口开放(用于账户登录和云同步)企业用户需配置代理白名单(若存在网络限制)三、安装全流程详解步骤1:获取安装包访问Postman官网安装包下载页:https://pan.quark.cn/s/407a93c56583/,选择Windows版本步骤2:运行安装程序解压压缩包,打开Postman-win64.exe 文件,选择安装路径(建议修改为D盘):D:\DevTools\Postman_v12 步骤3:完成安装新版默认直接安装启动,不用再启动安装程序勾选Launch Postman选项,点击Finish启动程序四、首次运行配置1. 账户注册/登录点击左下角Sign In,选择注册方式(推荐使用GitHub账号快捷登录)2. 工作区设置选择工作区类型(个人使用建议选Personal)五、功能验证与基础使用测试1:发送GET请求点击**+**号新建请求标签页输入测试接口URL:https://jsonplaceholder.typicode.com/posts/1点击Send按钮查看响应结果测试2:环境变量管理点击右上角齿轮图标进入Environments创建名为"Dev"的环境,添加变量base_url = https://api.example.com在请求URL中使用{{base_url}}/users实现动态配置六、常见问题解答Q1:安装时提示"Unable to authenticate"?检查系统时间是否准确临时关闭杀毒软件防火墙使用命令postman --disable-gpu启动Q2:如何导入Swagger文档?通过Import > Link输入OpenAPI文档URL,自动生成接口集合Q3:请求超时如何调整?在Settings > General中修改Request timeout为30000ms七、延伸学习资源Postman官方学习中心:https://learning.postman.com/声明:本教程使用Postman官方v11版本制作,遵循EULA使用协议。原创内容转载请注明来源。
  • [技术干货] NASA JPL接口错误
    代码如下,一直无法连接上NASA的API是为什么呢import loggingfrom typing import Dict, Listfrom astroquery.jplhorizons import Horizonsfrom astropy.time import Timeimport astropy.units as uimport pandas as pdimport timeimport randomimport requestsfrom requests.adapters import HTTPAdapterfrom urllib3.util.retry import Retryfrom tqdm import tqdm # ============== 日志配置 ==============logging.basicConfig(    level=logging.INFO,    format='%(asctime)s - %(levelname)s - %(message)s')logger = logging.getLogger(__name__) # ============== 代理池配置 ==============try:    import socks  # 检测 SOCKS5 支持    PROXY_POOL = [        {"host": "104.248.63.15", "port": 30588, "type": "http"},        {"host": "104.248.63.18", "port": 30588, "type": "http"},        {"host": "104.248.63.17", "port": 30588, "type": "http"},        {"host": "104.248.63.49", "port": 30588, "type": "http"},        {"host": "45.77.71.140", "port": 9050, "type": "socks5"}    ]except ImportError:    logger.warning("未检测到 SOCKS5 支持,已过滤 SOCKS 代理")    PROXY_POOL = [        p for p in [            {"host": "104.248.63.15", "port": 30588, "type": "http"},            {"host": "104.248.63.18", "port": 30588, "type": "http"},            {"host": "104.248.63.17", "port": 30588, "type": "http"},            {"host": "104.248.63.49", "port": 30588, "type": "http"}        ] if p["type"] != "socks5"    ]class SmartProxyPool:    """智能代理池(自动淘汰失效代理)"""    def __init__(self, proxies: List[Dict]):        self.proxies = [{            "url": self._format_url(p),            "success": 0,            "fail": 0,            "score": 100.0        } for p in proxies]     @staticmethod    def _format_url(proxy: Dict) -> str:        """生成代理URL"""        if proxy["type"] == "socks5":            return f'socks5://{proxy["host"]}:{proxy["port"]}'        return f'http://{proxy["host"]}:{proxy["port"]}'     def get_best_proxy(self) -> Dict:        """选择最优代理"""        self.proxies.sort(key=lambda x: x["score"], reverse=True)        return {            'http': self.proxies[0]["url"],            'https': self.proxies[0]["url"]        }     def update_score(self, proxy_url: str, success: bool):        """更新代理评分"""        for p in self.proxies:            if p["url"] == proxy_url:                if success:                    p["success"] += 1                    p["score"] = min(p["score"] * 1.1, 100.0)                else:                    p["fail"] += 1                    p["score"] *= 0.5                break proxy_pool = SmartProxyPool(PROXY_POOL) # ============== 网络会话 ==============def create_secure_session() -> requests.Session:    """创建增强型网络会话"""    session = requests.Session()    session.proxies = proxy_pool.get_best_proxy()     # 重试策略(指数退避 + 随机抖动)    retry = Retry(        total=5,        backoff_factor=0.5 + random.random(),  # 随机抖动        status_forcelist=[500, 502, 503, 504],        allowed_methods=frozenset(['GET', 'POST']),        respect_retry_after_header=True    )     adapter = HTTPAdapter(        max_retries=retry,        pool_connections=50,        pool_maxsize=100,        pool_block=True    )    session.mount('https://', adapter)    session.mount('http://', adapter)     def request_with_retry(method: str, url: str, **kwargs):        """带代理切换的重试机制"""        for _ in range(3):            current_proxy = session.proxies            try:                resp = session.request(                    method=method,                    url=url,                    timeout=(20, 40),                    **kwargs                )                resp.raise_for_status()                proxy_pool.update_score(current_proxy['http'], True)                return resp            except (requests.ProxyError, requests.ConnectTimeout) as e:                proxy_pool.update_score(current_proxy['http'], False)                logger.warning(f"代理 {current_proxy} 失败: {str(e)}")                session.proxies = proxy_pool.get_best_proxy()        raise requests.ConnectionError("所有代理尝试失败")     session.request = request_with_retry    return session # 注入全局会话Horizons._session = create_secure_session() # ============== 天体数据 ==============SOLAR_SYSTEM_IDS = {    "Sun": 10,    "Mercury": 199,    "Venus": 299,    "Earth-Moon Bary": 3,    "Mars": 499,    "Jupiter": 599,    "Saturn": 699,    "Uranus": 799,    "Neptune": 899,    "Pluto": 999} # ============== 参数配置 ==============EPOCH = Time.now().utc  # 使用 UTC 时间OBSERVER = '500@0'QUANTITIES = '1,9,15,19,20,23' # ============== 核心函数 ==============def get_solar_positions() -> pd.DataFrame:    """获取所有天体的位置数据"""    results = []     for name, obj_id in tqdm(SOLAR_SYSTEM_IDS.items(), desc="查询进度"):        try:            obj = Horizons(                id=obj_id,                location=OBSERVER,                epochs=EPOCH.jd,                id_type='id'            )            eph = obj.ephemerides(quantities=QUANTITIES)[0]             # 安全获取字段            results.append({                "Name": name,                "RA (hms)": f"{eph.get('RA', 'N/A'):.3f}h",                "DEC (dms)": f"{eph.get('DEC', 'N/A'):.3f}°",                "Distance (au)": f"{eph.get('delta', 'N/A'):.5f}",                "Apparent Mag": f"{eph.get('V', 'N/A'):.1f}",                "Angular Size ('')": f"{eph.get('ang_width', 'N/A'):.2f}",                "Sky Motion": f"{eph.get('RA_rate', 'N/A'):.2f}/{eph.get('DEC_rate', 'N/A'):.3f}''/min",                "Light Time (min)": f"{(eph.get('lighttime', 0) * 1440):.1f}" if eph.get('lighttime') else 'N/A'            })        except (requests.HTTPError, KeyError) as e:            logger.error(f"数据错误 [{name}]: {str(e)}")            results.append({"Name": name, "Error": "数据解析失败"})        except requests.RequestException as e:            logger.error(f"网络错误 [{name}]: {str(e)}")            results.append({"Name": name, "Error": "连接超时"})        except Exception as e:            logger.error(f"未知错误 [{name}]: {str(e)}")            results.append({"Name": name, "Error": "系统异常"})     return pd.DataFrame(results) # ============== 主程序 ==============if __name__ == "__main__":    logger.info("正在获取数据,可能需要1-2分钟...")    df = get_solar_positions()     print(f"\n====== 太阳系天体坐标(UTC {EPOCH.iso})======")    print(df.to_markdown(index=False))     df.to_csv('solar_system_positions.csv', index=False)    logger.info("结果已保存至 solar_system_positions.csv")
  • [问题求助] 在谷歌Chrome浏览器的“沉浸式翻译”插件中,想调用华为云的自然语言处理NLP的机器翻译API,各个空格应该怎么填?
    在谷歌Chrome浏览器的“沉浸式翻译”插件中,想调用华为云的自然语言处理NLP的机器翻译API,需要填写“自定义API接口地址”、“模型”、“System Prompt”、“Prompt”、“Multiple Prompt”、“Subtitle Prompt”这几项,请问这几项应该填什么?
  • [问题求助] token已经获得,请求头格式正确但设备影子获取不了,报错403,如图:
    程序部分:控制台输出部分:详细data:
  • [问题求助] 请问使用二级VDC的domain和二级VDC下账号 如何获取token
    这边使用HCS API进行对接使用二级的VDC domain和二级的VDC用户和获取token时报 401;使用一级的VDC domain和二级的VDC用户可以获取到token;请问下使用二级VDC domain和二级VDC下用户是不是不支持认证? 请求地址:https://ip:port/v3/auth/tokens payload = {"auth": { "identity": { "methods": ["password"], "password": {"user": { "name": username, "password": password, "domain": {"name": domain} #mo_bss_admin }} }, "scope": {"domain": {"name": domain}} #mo_bss_admin }}
  • [问题求助] IVR无法收集按键
    问题来源: 亿迅问题类别:IVR(gsl / vxml1.0 / vxml2.0 / vxml2.1)AICC解决方案版本: CTI版本:ICD V300R008C25期望解决时间:尽快需求:复合CELL进行三次菜单输入校验,错误时提示输入错误重新输入,三次挂机问题:1.第一次播放07100074.wav(自助服务请按1),还没等到超时时间就触发了超时事件首次输入超时设置了240秒2.超时之后播放99000001.wav(输入错误请重新输入)+重新播放 07100074.wav(自助服务请按1) 都失败了,Get MSG_SSP_SCP_PLAYRECORD_RES, but the result is NOT success! msg.result=0上图  07100074.wav可以播放3. 再播放99000001.wav(输入错误请重新输入)99000001.wav 前面一次放音失败了4.超过三次错误挂机
  • [问题求助] IVR 挂起转挂断
    【问题来源】【必填】亿迅【问题简要】【必填】坐席发起挂起转IVR进行身份验证,验证方挂断,无法根据事件区分是IVR验密返回还是挂机【问题类别】【必填】CC-Gateway【AICC解决方案版本】【必填】AICC 24.100.0【期望解决时间】【选填】在线等【问题现象描述】【必填】1、电话呼入坐席11015接听2、11015发起一个挂起转身份验证IVR3、用户在身份验证IVR挂断4、坐席工作台无法根据事件区分是IVR结束返回坐席,还是用户在IVR中挂机
  • [问题求助] 【linksoft】【API测试】api测试功能,一直在转圈
    场景:API开发后,进行测试,界面一直转圈,无法使用
  • [问题求助] agentDemo如何设置支持输入6位工号,是否有对应版本下载
    【问题来源】交通银行【问题简要】agentdemo【问题类别】【AICC】【AICC解决方案版本】【23.200】【问题现象描述】agentdemo支持输入6位工号【日志或错误截图】
  • [大赛专区] 【开发者学习赛-CodeArt API赛道】【语音合成应用开发】指导文档
    【大赛简介】随着智能客服、服务机器人、出行导航、智能家居等应用的普及,语音合成技术也迎来了新的机遇。本赛道围绕华为云CodeArts API和IDE服务,并结合AI技术,可以快速创建语音合成应用,并实现按照文本要求输出专属场景音色音频。本赛题要求参赛选手根据指导文档,通过华为云CodeArts API和IDE服务完成语音合成应用开发,并生成音频。操作指导如下:【环节一】 通过CodeArts API设计语音合成接口1、 进入CodeArts API官网点击网页版体验并登录https://developer.huaweicloud.com/develop/codeartsapi.html2、创建项目登录后点击页面右上角的“创建项目”按钮在创建项目弹窗中输入项目名称:语音合成,并点击保存提示保存成功,点击API设计页签,进入到API设计页面3、设计接口点击接口搜索栏右侧“+”,选择 “新建API接口”。显示新建标签页输入接口的URL:/tts输入接口名称:语音合成下拉滚动条到请求体区域,单击“Body页面”,单击“raw”显示请求体的数据结构模板,默认根节点类型为“object”点击根节点最右侧的“+”操作页面上在根节点下新增一条参数(可以通过滚动条左右拖动)将参数名设置为text,描述设置为待合成的文本下拉页面,看到返回响应区域同样点击根节点最右侧的“+”操作(可以通过滚动条拖动到最右侧),在根节点下显示一条新的参数将参数名设置为result,将描述设置为合成结果点击右上角的保存按钮保存成功,设计完成【环节二】通过API Explorer调试语音合成接口,生成5段数据流登录API Explorer链接>>cid:link_2调整音频格式、采样率、男女声、语速、音色等参数,输入文字文本后,生成语音。如生成语音格式为wav,采样率:8000,标准女音,语速0,音色0生成语音格式为mp3,采样率:8000,标准女音,语速100,音色100【环节三】基于华为云自研CodeArts IDE,实现数据流转换为音频的功能1、打开CodeArts IDE ONLINE点击链接>>cid:link_4,免费体验云开发2、实现数据流转换为音频2.1 将实验用Demo工程上传到CodeArts IDE Online1)Demo工程下载链接>>cid:link_1打开CodeArts IDE Online后,左上角点击“文件”->“上传文件”:2)上传“CodeArtsProject.zip”,点击“终端”对工程进行解压3)左上角->文件->打开,打开解压后的工程目录2.2 在华为云控制台新增访问秘钥,配置AK/SK1)登录华为云控制台:https://console.huaweicloud.com/iam/?agencyId=599e2ee1492f48e9b69a0a682d435fb8®ion=cn-north-4&locale=zh-cn#/mine/accessKey,选择“我的凭证”->“访问秘钥”->新增访问秘钥,如果已经有AK/SK秘钥,不需要新增访问秘钥创建秘钥成功后点击“立即下载”,即可获得“credentials.csv”文件,里面可以查看到AK(Access Key Id)和SK(Secret Access Key)2)进入工程,src/main/resources下选择credentials.properties,讲AK/SK配置上2.3 将API Explorer上调试成功的流数据文件配置到APIResponse.json中在语音合成章节,我们在API Explorer完成接口的调试cid:link_2,最终生成“SIS_RunTts_ResponseBody_xxxxxxxxxxxxx.json”文件,打开json文件,复制响应体内容打开工程,进入src/main/resources中,选择APIResponse.json,将json文件的内容复制到APIResponse.json中。2.4 执行“should_return_audio_when_response_json”,生成mps格式音频文件找到test目录下的测试类SisServiceTest.java,点击找到方法“should_return_audio_when_response_json()”,点击Run Test,最后可以看到目录下生成的音频文件。目录下生成“devkit.mps”文件右击下载,可以获得转换后的音频文件,实验结束【提交要求】1、提交内容:(1)环节一、二、三均需要提交最终完成页面的截图;(2)环节三需要额外提交生成的音频文件;(3)截图需要包含华为云账号。2、提交方式::将提交内容打包成RAR/ZIP压缩包上传至大赛“提交作品”页>>Link。3、作品命名:以“姓名-联系方式”格式命名。4、提交次数:赛事期间,每人每天最多可提交2次,以最终提交的版本为准。