华为云用户手册
-
str_split 通过指定分隔符对字符串进行分割。 函数格式 str_split(value, sep=None, maxsplit=-1) 参数说明 参数名称 参数类型 是否必填 说明 value 任意(自动转为String) 是 需要被分割的原字符串。 sep Number 否 分隔符,None表示空格。 maxsplit Number 否 最大分裂数。-1表示不限制。 返回结果 处理后的字符串。 函数示例 测试数据 { "content": "lts,a,log,service" } 加工规则 e_set("str_split", str_split(v("content"), ",")) 加工结果 content: lts,a,log,service str_split: ["lts","a","log","service"]
-
str_count 统计字符串里某个字符出现的次数。 函数格式 str_count(value, sub, start, end) 参数说明 参数名称 参数类型 是否必填 说明 value 任意(自动转为String) 是 被统计的原字符串。 sub 任意(自动转为String) 是 需要统计个数的字符。 start Number 否 字符串开始搜索的位置。 0(默认值):第一个字符。 -1:最后一个字符。 end Number 否 字符串中结束搜索的位置。 0:第一个字符。 -1(默认值):最后一个字符。 返回结果 返回指定字符出现的次数。 函数示例 测试数据 { "name": "lts is a log service" } 加工规则 e_set("str_count", str_count(v("name"), "l")) 加工结果 name: lts is a log service str_count: 2
-
后续指引 完成TPC-H样例模板开发并提交Spark SQL作业操作后,如果您想了解更多关于Spark SQL作业相关操作,建议您参考以下指引阅读。 分类 文档 说明 界面操作 SQL编辑器 提供执行Spark SQL语句操作的界面指导,包含SQL编辑器界面基本功能介绍、快捷键以及使用技巧等说明。 Spark SQL作业管理 提供Spark SQL作业管理界面功能介绍。 Spark SQL模板管理 DLI 支持定制模板或将正在使用的SQL语句保存为模板,便捷快速的执行SQL操作。 开发指导 Spark SQL语法参考 提供Spark SQL数据库、表、分区、导入及导出数据、自定义函数、内置函数等语法说明和样例指导。 使用Spark作业访问DLI元数据 提供Spark SQL作业开发的操作指引和样例代码参考。 Spark SQL 相关API 提供Spark SQL相关API的使用说明。
-
如果您是开发工程师 如果您拥有一定的开发经验,想要基于DLI现有能力进行更复杂的数据分析和开发,建议您学习和掌握以下功能模块。 模块 说明 开发指南 提供样例代码参考,您可以基于Flink、Spark的API进行二次开发,构建自己的应用Jar包,提交到DLI队列运行。 SDK参考 SDK是对DLI提供的REST API进行封装,便于您可以直接调用DLI SDK提供的接口函数实现使用DLI业务能力的目的。 API参考 您可以调用DLI提供的API接口完成数据分析等业务操作。
-
如果您是数据分析师 如果您是数据分析师,建议您先熟悉以下模块,掌握DLI支持的Spark、Flink等常用SQL语法,帮助你查询分析业务数据。 组件 模块 说明 Spark相关 数据库相关 在Spark场景下的创建数据库、删除数据库以及查看数据库等数据库操作语法。 表相关 在Spark场景下的创建表、修改表,删除表等语法。 跨源连接相关 跨源连接访问HBase、OpenTSDB、DWS、RDS、 CSS 、D CS 及DDS场景的下的语法。 自定义函数 Spark支持通过创建自定义函数来满足更多的计算需求。 内置函数 支持数学函数、日期函数、字符串函数、聚合函数、分析窗口函数等内置函数进行数据分析。 Flink OpenSource SQL相关 数据定义语句DDL 创建Kafka、DIS、JDBC、DWS、Redis、HBase、userDefined等source流获取数据,作为作业的输入数据。 创建ClickHouse、Kafka、DIS、DWS、Redis、 SMN 、HBase、Elasticsearch及userDefined结果表,用于将Flink作业输出数据写入到该表中。 创建JDBC、DWS、HBase的维表用于与Flink的输入流进行连接。 数据操作语句DML 支持查询、集合操作、窗口函数、JOIN等相关语法操作进行数据分析。 自定义函数 DLI支持的UDF自定义函数、UDTF自定义表值函数、UDAF自定义聚合函数的语法介绍和操作说明。 内置函数 DLI支持的数学运算函数、字符串函数、时间函数、条件函数、类型转换函数、集合函数、值构建函数、属性访问函数、Hash函数、聚合函数、表值函数语法介绍和使用示例。 Flink SQL相关 创建输入流 创建source流从CloudTable、DIS、DMS、EdgeHub、Kafka、OBS中获取数据,作为作业的输入数据。 创建输出流 DLI提供将作业的输出数据写入到CloudTable、OpenTSDB、Elasticsearch、DCS、DDS、DIS、DMS、DWS、HBase、RDS、Kafka中的语法操作。 创建中间流 中间流用来简化SQL逻辑,若SQL逻辑比较复杂,可以写多个SQL语句,用中间流进行串接。 创建维表 创建Redis、RDS的维表和Flink的输入流进行连接。
-
操作前准备 工具包 DLI的JDBC驱动:dli-jdbc-2.1.1.jar DBeaver客户端安装包: DBeaver官网提供了针对不同操作系统的客户端安装包,单击下载DBeaver访问DBeaver官网下载系统对应的DBeaver客户端安装包并完成安装 。推荐使用24.0.3版本的DBeaver。 连接信息: 类别 说明 获取方式 DLI AKSK AK/SK认证就是使用AK/SK对请求进行签名,从而通过身份认证。 获取AK/SK DLI Endpoint地址 地区与终端节点,即云服务在不同Region有不同的访问 域名 。 获取EndPoint DLI所在的项目ID 项目编号,用于资源隔离。 获取项目ID DLI区域信息 DLI所属区域信息 地区和终端节点
-
响应示例 状态码: 200 OK { "meta_info" : { "current_time" : "2023-12-13T09:55:45Z" }, "payload" : { "list" : [ { "id" : "ef4fd3d6-fa4e-49ea-989a-3216c36164d7", "cluster_id" : "3c151f54-e5df-4b6c-8690-b955df98a97f", "match_nodes" : 1, "usage" : "TRAINING_TRAIN", "cpu" : 5, "memory" : 20, "build_in" : false, "project_id" : "54d37c8f25af4277a1ff4ee9772687bf" }, { "id" : "38aa2057-4217-41d0-b5ba-94f8832e909e", "cluster_id" : "3c151f54-e5df-4b6c-8690-b955df98a97f", "match_nodes" : 1, "usage" : "TRAINING_TRAIN", "gpu_type" : "Pnt1", "gpu" : 1, "cpu" : 5, "memory" : 20, "build_in" : false, "project_id" : "54d37c8f25af4277a1ff4ee9772687bf" }, { "id" : "2ac937fa-d17a-4991-8e56-f1951b878af8", "cluster_id" : "3c151f54-e5df-4b6c-8690-b955df98a97f", "match_nodes" : 1, "usage" : "TRAINING_TRAIN", "gpu_type" : "Pnt1", "gpu" : 1, "cpu" : 4, "memory" : 20, "build_in" : false, "project_id" : "54d37c8f25af4277a1ff4ee9772687bf" }, { "id" : "7676f33e-cf22-4227-aac1-ac3865ceddb2", "cluster_id" : "3c151f54-e5df-4b6c-8690-b955df98a97f", "match_nodes" : 1, "usage" : "TRAINING_TRAIN", "gpu_type" : "Pnt1", "gpu" : 1, "cpu" : 4, "memory" : 32, "build_in" : false, "project_id" : "54d37c8f25af4277a1ff4ee9772687bf" } ], "page_info" : { "offset" : 0, "limit" : 4, "total" : 4 } } }
-
响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 payload ResourceSpecs object 实际返回的资源规格信息 meta_info RespMetaInfo object 元数据 表5 ResourceSpecs 参数 参数类型 描述 list Array of ResourceSpecsVo objects 资源规格列表 page_info PageInfo object 返回列表分页信息 表6 ResourceSpecsVo 参数 参数类型 描述 id String id cluster_id String 集群ID usage String 资源规格用途 枚举值: SIM_COMPILE(仿真编译) SIM_DOCKER(仿真异步镜像) DATA_PRO CES S(数据处理) DATA_CONVERSION(数据转换) DATA_RESIM(回放仿真) DATA_DESENSITIZATION(数据脱敏) TRAINING_TRAIN(训练任务) TRAINING_EVALUATE(模型评测) TRAINING_COMPILE(模型编译) ANNOTATION_MANUAL(人工标注) ANNOTATION_AI(预标注) ANNOTATION_SEGMENTATION(交互式分割) COMMON_DATASET(数据集) gpu_type String GPU类型(资源规格不包含GPU,此字段不会返回); 枚举值: Tnt004 Vnt1 Mnt06 Pnt1 Pnt004 gpu Integer GPU数量,整数(资源规格不包含GPU,此字段不会返回); cpu Double CPU数量,单位Core,支持一位小数; memory Double 内存大小,单位GiB,支持一位小数; build_in Boolean 是否内置资源规格,true代表内置资源规格,false代表用户自定义资源规格。 project_id String 项目id match_nodes Integer 资源规格可用节点的数量 表7 PageInfo 参数 参数类型 描述 offset Integer 查询偏移量 limit Integer 返回个数上限 total Integer 资源总数 表8 RespMetaInfo 参数 参数类型 描述 current_time String 请求时间,UTC时间格式,时间为UTC标准时间。
-
请求示例 查询模板报表。模板ID为"600000001",查询时间范围从"2022-06-01 07:20:50" 到 "2022-07-01 07:20:50"。 https://koomessage.myhuaweicloud.cn/v1/aim/template-reports/query { "tpl_ids" : [ "600000001" ], "begin_time" : "2022-06-01T07:20:50.522Z", "end_time" : "2022-07-01T07:20:50.522Z", "offset" : 0, "limit" : 10 }
-
响应示例 状态码: 200 返回信息。 { "template_reports" : [ { "tpl_id" : "600000001", "start_time" : "2022-06-30T00:00:00Z", "resolving_times" : 0, "end_time" : "2022-07-18T17:56:08Z", "expose_uv" : 3, "expose_pv" : 33, "click_uv" : 3, "click_pv" : 6 } ], "page_info" : { "offset" : 0, "limit" : 10, "total" : 1 } }
-
响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 template_reports Array of AIMTemplateReport objects 查询模板报表结果集。 page_info Page object 分页信息。 表4 AIMTemplateReport 参数 参数类型 描述 tpl_id String 智能信息模板ID。 start_time String 统计开始时间。样例为:1970-01-01T00:00:00Z。 resolving_times Integer 实际已解析数。 end_time String 统计结束时间。样例为:1970-01-01T00:00:00Z。 expose_uv Long 消息曝光数。 expose_pv Long 消息曝光次数。 click_uv Long 消息点击数。 click_pv Long 消息点击次数。 表5 Page 参数 参数类型 描述 offset Integer 偏移量,表示从此偏移量开始查询,offset大于等于0。 limit Integer 每页显示的条目数量。 total Integer 总条数。 状态码: 400 表6 响应Body参数 参数 参数类型 描述 error_code String 结果状态码。 error_msg String 结果详情。 error_message Object 结果详情。 说明: 该字段在以后可能会废弃,建议使用error_msg字段对接。 状态码: 500 表7 响应Body参数 参数 参数类型 描述 error_code String 结果状态码。 error_msg String 结果详情。 error_message Object 结果详情。 说明: 该字段在以后可能会废弃,建议使用error_msg字段对接。
-
请求参数 表1 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 用户Token。通过调用 IAM 服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 Content-Type 是 String 请求体参数类型,该字段必须设置为:application/json。 表2 请求Body参数 参数 是否必选 参数类型 描述 tpl_ids 是 Array of strings 智能信息模板ID列表,一次最多请求100个。 数组长度:1 - 100 begin_time 是 String 模板报表查询开始时间。样例:2019-10-12T07:20:50.522Z。 说明: 开始时间和结束时间最多间隔90天,超出时间限制返回为空。 最小长度:1 最大长度:30 end_time 是 String 模板报表查询结束时间。样例:2019-10-12T07:20:50.522Z。 说明: 开始时间和结束时间最多间隔90天,超出时间限制返回为空。 最小长度:1 最大长度:30 offset 否 Integer 偏移量,表示从此偏移量开始查询,offset大于等于0。 最小值:0 最大值:2147483647 缺省值:0 limit 否 Integer 每页显示的条目数量。 最小值:1 最大值:100 缺省值:20 factory_type 否 Array of strings 厂商类型。不填时默认全厂商。列举值:"huawei", "vivo", "oppo", "xiaomi", "meizu", "samsung"。
-
请求示例 生成解析任务-个性化。模板ID为"600000001",短链最大解析次数为1次,过期时间为7天。 https://koomessage.myhuaweicloud.cn/v1/aim/resolve-tasks { "tpl_id" : "600000001", "sms_signs" : [ "华为云 KooMessage " ], "aim_code_type" : "individual", "resolving_times" : 1, "domain" : null, "expiration_time" : 7, "params" : [ { "cust_flag" : "131****0000", "dync_params" : { "param1" : "参数1", "param2" : "参数2", "param3" : "参数3", "param4" : "参数4" }, "custom_url" : "https://www.example.com" }, { "cust_flag" : "131****0001", "dync_params" : { "param1" : "参数1", "param2" : "参数2", "param3" : "参数3", "param4" : "参数4" }, "custom_url" : "https://www.example.com" } ] } 生成解析任务-群发。模板ID为"600000002",短链最大解析次数为5次,过期时间为7天,域名为"km2g.cn"。 https://koomessage.myhuaweicloud.cn/v1/aim/resolve-tasks { "tpl_id" : "600000002", "sms_signs" : [ "华为云KooMessage" ], "aim_code_type" : "group", "resolving_times" : 5, "domain" : "km2g.cn", "expiration_time" : 7, "params" : [ { "cust_flag" : "131****0000", "custom_url" : "https://www.example.com" } ] } 生成解析任务-自定义短码。模板ID为"600000002",短链最大解析次数为5次,过期时间为7天,自定义短码为"abc123"。 https://koomessage.myhuaweicloud.cn/v1/aim/resolve-tasks { "tpl_id" : "600000002", "sms_signs" : [ "华为云KooMessage" ], "aim_code_type" : "group", "resolving_times" : 5, "domain" : "km3g.cn", "expiration_time" : 7, "generation_type" : "2", "params" : [ { "cust_flag" : "131****0000", "custom_short_code" : "abc123" } ] }
-
响应示例 状态码: 200 返回信息。 { "task_id" : "80959fd0-dc23-42e3-9595-59a49ee6cccc", "tpl_id" : "600000002", "sms_signs" : [ "华为云KooMessage" ], "resolving_times" : 5, "aim_code_type" : "group", "domain" : "km2g.cn", "expiration_time" : 7, "params" : [ { "cust_flag" : "131****0000", "cust_id" : "231724915a62455ca356e10a085c9a23", "dync_params" : null, "custom_url" : "https://www.example.com", "aim_url" : "km2g.cn/PDARc6", "aim_code" : "PDARc6", "result_code" : "0", "error_message" : null, "generate_date" : "2022-07-18T21:02:44Z", "expire_date" : "2022-07-25T21:02:44Z", "custom_short_code" : null } ] }
-
响应示例 状态码: 200 返回200状态码仅代表接口请求成功,任务提交结果由task_state字段来区分,此结果仅代表任务提交结果,并非智能信息发送结果。用户手机接收智能信息结果请以收到的回执结果为准,也可通过查询智能信息发送明细API获取或登录KooMessage控制台查看。 { "task_name" : "智能信息发送", "sms_channel" : { "channel_number" : "8822053111111", "sms_tpl_id" : 15010661, "sms_sign" : "华为云KooMessage", "sms_app_name" : "KooMessage" }, "resolve_task" : { "tpl_id" : "600000001", "resolve_times" : 1, "aim_code_type" : "individual", "domain" : null, "expiration_time" : 7, "generation_type" : "1", "params" : [ { "cust_flag" : "131****0000", "dync_params" : null, "custom_url" : "https://www.example.com", "custom_short_code" : null, "sms_params" : [ ] } ] }, "task_id" : "c3d7659d-06b0-4fa0-9eed-9225389ecccc", "task_state" : "Success", "creation_time" : "2022-07-19T14:37:34.00Z", "submission_count" : 1, "send_count" : 1, "resolve_count" : 0, "failed_short_chains" : [ ] }
-
请求示例 发送智能信息。模板ID为"600000001",短链最大解析次数为1次,过期时间为7天,发送手机号码如"131****0000";通道号为"8822053111111",短信模板ID为"15010661"。 https://koomessage.myhuaweicloud.cn/v1/aim/send-tasks { "task_name" : "智能信息发送", "sms_channel" : { "channel_number" : "8822053111111", "sms_tpl_id" : 15010661, "sms_sign" : "华为云KooMessage", "sms_app_name" : "KooMessage" }, "resolve_task" : { "tpl_id" : "600000001", "resolve_times" : 1, "aim_code_type" : "individual", "domain" : null, "expiration_time" : 7, "params" : [ { "cust_flag" : "131****0000", "custom_url" : "https://www.example.com" } ] } } 发送智能信息-动态参数。模板ID为"600000002",短链最大解析次数为1次,过期时间为7天,发送手机号码如"131****0000",分别设置动态参数;通道号为"8822053111111",短信模板ID为"15010661"。 https://koomessage.myhuaweicloud.cn/v1/aim/send-tasks { "task_name" : "智能信息发送-动态参数", "sms_channel" : { "channel_number" : "8822053111111", "sms_tpl_id" : 15010661, "sms_sign" : "华为云KooMessage", "sms_app_name" : "KooMessage" }, "resolve_task" : { "tpl_id" : "600000002", "resolve_times" : 1, "aim_code_type" : "individual", "domain" : null, "expiration_time" : 7, "params" : [ { "cust_flag" : "131****0000", "dync_params" : { "param1" : "参数1", "param2" : "参数2", "param3" : "参数3", "param4" : "参数4" }, "custom_url" : "https://www.example.com", "sms_params" : [ "参数1", "参数2" ] }, { "cust_flag" : "131****0001", "dync_params" : { "param1" : "参数1", "param2" : "参数2", "param3" : "参数3", "param4" : "参数4" }, "custom_url" : "https://www.example.com", "sms_params" : [ "参数1", "参数2" ] } ] } }
-
Step2 权重格式转换 AutoAWQ量化完成后,使用int32对int4的权重进行打包。昇腾上使用int8对权重进行打包,需要进行权重转换。 进入vllm代码目录下执行以下脚本: python vllm/model_executor/layers/quantization/convert_awq_to_npu.py --model /home/ma-user/Qwen1.5-72B-Chat-AWQ --version 2 参数说明: model:模型路径。 version:权重格式,传2。 执行时间预计10分钟。
-
资源规格要求 计算规格:对于Llama2-7B和Llama2-13B单机训练需要使用单机8卡,多机训练需要使用2机16卡。对于Llama2-70B至少需要4机32卡才能训练,建议使用8机64卡执行训练相关任务。 硬盘空间:至少200GB。 Ascend资源规格: Ascend: 1*ascend-snt9b表示Ascend单卡。 Ascend: 8*ascend-snt9b表示Ascend 8卡。
-
使用SmoothQuant量化工具转换权重 当前对Llama/Llama2/Llama3系列、Qwen系列、Qwen1.5系列模型支持AWQ(W4A16)和SmootQuant(W8A8)两种量化方案。 AWQ(W4A16)量化方案能显著降低模型显存以及需要部署的卡数。降低小batch下的增量推理时延。 SmootQuant(W8A8)量化方案能降低模型显存以及需要部署的卡数。也能同时降低首token时延和增量推理时延。 本章节介绍如何使用SmoothQuant量化工具如何进行权重转换。 SmoothQuant量化工具使用到的脚本存放在代码包AscendCloud-3rdLLM-x.x.x.zip的llm_tools目录下。 代码目录如下: AutoSmoothQuant #量化工具 ├── ascend_autosmoothquant_adapter # 昇腾量化使用的算子模块 ├── autosmoothquant # 量化代码 ├── requirements.txt # 第三方依赖 ├── setup.py # 安装量化模块的脚本 ... 量化方法:当前只支持激活值per-token,权重per-channel,动态量化。 具体操作如下: 配置环境。 cd llm_tools/AutoSmoothQuant/ pip install -r requirements.txt pip install -e . 配置需要使用的NPU卡,例如:实际使用的是第1张和第2张卡,此处填写为“0,1”,以此类推。 export ASCEND_RT_VISIBLE_DEVICES=0,1 NPU卡编号可以通过命令npu-smi info查询。 执行权重转换。 cd autosmoothquant/examples/ python smoothquant_model.py --model-path /home/ma-user/llama-2-7b/ --quantize-model --generate-scale --dataset-path /data/nfs/user/val.jsonl --scale-output scales/llama2-7b.pt --model-output quantized_model/llama2-7b --per-token --per-channel 参数说明: --model-path:原始模型权重路径。 --quantize-model:是否生成量化模型权重,需指定。 --generate-scale:是否生成量化系数,如不指定--scale-input参数,则需要指定。 --dataset-path:数据集路径,推荐使用:https://huggingface.co/datasets/mit-han-lab/pile-val-backup/resolve/main/val.jsonl.zst。 --scale-output:量化系数保存路径。 --scale-input:量化系数输入路径,若之前已生成过量化系数,则可指定该参数,跳过生成scale的过程。 --model-output:量化模型权重保存路径。 --smooth-strength:平滑系数,推荐先指定为0.5,后续可以根据推理效果进行调整。 --per-token:激活值量化方法,若指定则为per-token粒度量化,否则为per-tensor粒度量化,当前必须指定。 --per-channel:权重量化方法,若指定则为per-channel粒度量化,否则为per-tensor粒度量化,当前必须指定。 转换Qwen系模型可能比较耗时,72b权重大致需要3-5h。 启动smoothQuant量化服务。 参考Step6 启动推理服务,启动推理服务时添加如下命令。 --q smoothquant 或者 --quantization smoothquant 父主题: 推理模型量化
-
启动、停止和重启服务 在集群详情页,单击“组件管理”。 在指定服务所在行,单击“启动”、“停止”和“重启”执行启动、停止和重启操作。 服务之间存在依赖关系。对某服务执行启动、停止和重启操作时,与该服务存在依赖关系的服务将受到影响。 具体影响如下: 启动某服务,该服务依赖的下层服务需先启动,服务功能才可生效。 停止某服务,依赖该服务的上层服务将无法提供功能。 重启某服务,依赖该服务且启动的上层服务需重启后才可生效。
-
删除服务 MRS 3.1.2-LTS.3及之后版本支持添加和删除服务。 在集群详情页,单击“组件管理”。 在指定服务所在行,单击“删除”操作。 如果需要删除的服务存在上层依赖,则不可删除,每次只能删除一个服务。 不支持删除Hadoop(HDFS、Yarn、MapReduce)、Ranger、DBService、KrbServer、LdapServer和meta服务,其他已安装服务可删除。 如果确认删除,在弹出的“删除服务”窗口中输入“DELETE ”,单击“确定”,删除该服务。 在Console上删除服务会自动同步到Manager页面。 删除服务前,请先备份该服务的数据,避免数据丢失。
-
前提条件 需要在IAM 用户所属的用户组中,设置用户组的权限。 由于在集群上添加服务和删除服务属于高危操作,因此需要给该用户组绑定MRS FullAccess、MRS Administrator、Server Administrator 、Tenant Guest和MRS Administrator或Tenant Administrator任意一个策略才可以执行。具体权限说明请参见IAM用户同步MRS说明。 已完成IAM用户同步(在集群详情页的“概览”页签,单击“IAM用户同步”右侧的“同步”进行IAM用户同步)。 图1 IAM用户同步
-
节点池管理 在资源池详情页,单击“节点池管理”页签,您可以创建、更新和删除节点池。 图1 节点池管理 创建节点池 当您需要更多节点池时,可单击“创建节点池”新增节点池,相关参数请参见k8s Cluster资源购买。 查看节点列表 当您想查看某一节点池下的节点相关信息,可单击操作列的“节点列表”,可查询节点的名称、规格及可用区。 更新节点池 当您想更新节点池配置时,可单击操作列的“更新”,相关参数介绍请参见k8s Cluster资源购买。 需注意,更新节点池配置时,不同参数的作用范围不同,例如K8S标签节点、污点的修改,会同步更新节点池下的存量节点。容器引擎空间大小、节点子网等参数,仅对新增的节点(扩容或重置生效),存量节点配置保持不变。 图2 更新节点池 删除节点池 当有多个节点池时,支持删除节点池,此时在操作列会显示“删除”按钮,单击“删除”后输入“DELETE”并单击“确定”即可。 每个资源池至少需要有一个节点池,当只有一个节点池时不支持删除。 父主题: k8s Cluster资源使用
-
集成步骤 轻量级WEB聊天控件可以快速高效的集成到您的页面,请您根据图1进行集成开发。 图1 集成开发步骤 完成开发前资源准备,获取登录信息,配置在线客服功能,请参见开发前准备。 开发token生成机制与token认证接口,提供给云客服。云客服在鉴权通过后,会将Token发回给第三方系统,由第三方系统确认是否为本系统发的请求,请参见开发token生成机制与认证验证接口。 华为方使用HTTPS传输协议确保信息传输通道安全,请第三方确保开发的鉴权功能具备“口令复杂度校验”、“防暴力破解”、“防DOS攻击”等安全防护能力。 引入相关依赖框架,构造请求参数请求thirdPartyClient.js和newThirdPartyClient.js ,将Token信息、租户ID、企业侧的用户ID、用户名称等信息返回云客服,请求鉴权,鉴权通过后可实现云客服网页聊天能力的轻量级接入,请参见开发集成页面。 测试与验证WEB聊天控件功能,通过客户端窗口发起在线聊天检查与座席聊天功能,请参见测试与验证。 父主题: 集成轻量级WEB聊天控件(引入Token认证方式)
-
解决方法 跨域问题,是因为集成方的网站做了安全限制,不允许请求非本域提供的资源造成的。可通过使用负载均衡应用(如Nginx)的反向代理来解决。 图1 地址在负载均衡应用上的映射原理 即第三方页面使用JS调用时,调用本地域名下的一个服务,该服务放通到云客服的域名地址手上。 由于云客服只有识别到service-cloud,才会识别该请求,因此第三方页面的请求地址必须包含service-cloud。 以Nginx为例,整体配置要点如下: 在nginx.conf文件中添加首层服务地址,如下所示。 location /demo/ { proxy_set_header Host $host; set $Real $proxy_add_x_forwarded_for; if ($Real ~ (\d+)\.(\d+)\.(\d+)\.(\d+)\,(.*)){ set $Real $1.$2.$3.$4; } proxy_set_header X-Real-IP $Real; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass https://servicestage.besclouds.com/; } demo为样例,集成方可根据需要自行定义。 servicestage.besclouds.com请以云客服提供的地址为准。 location /service-cloud/ { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_request_buffering off; proxy_pass https://servicestage.besclouds.com/service-cloud; } 在开发集成页面中采用如下地址进行JS请求,其中location.protocol请使用集成方的域名+上一步配置的服务名(例如demo)。 const $ContextPath = location.protocol + "/service-cloud" let serviceUrl = $ContextPath+ "/webclient/chat_client/js/thirdPartyClient.js?"+"&t=" + timestamp; let thirdUserData = {}; ......
-
解决方法 跨域问题,是因为集成方的网站做了安全限制,不允许请求非本域提供的资源造成的。可通过使用负载均衡应用(如Nginx)的反向代理来解决。 图1 地址在负载均衡应用上的映射原理 即第三方页面使用JS调用时,调用本地域名下的一个服务,该服务放通到云客服的域名地址手上。 由于云客服只有识别到service-cloud,才会识别该请求,因此第三方页面的请求地址必须包含service-cloud。 以Nginx为例,整体配置要点如下: 在nginx.conf文件中添加首层服务地址,如下所示。 location /demo/ { proxy_set_header Host $host; set $Real $proxy_add_x_forwarded_for; if ($Real ~ (\d+)\.(\d+)\.(\d+)\.(\d+)\,(.*)){ set $Real $1.$2.$3.$4; } proxy_set_header X-Real-IP $Real; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass https://servicestage.besclouds.com/; } demo为样例,集成方可根据需要自行定义。 servicestage.besclouds.com请以云客服提供的地址为准。 location /service-cloud/ { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_request_buffering off; proxy_pass https://servicestage.besclouds.com/service-cloud; } 在开发集成页面中采用如下地址进行JS请求,其中location.protocol请使用集成方的域名+上一步配置的服务名(例如demo)。 const $ContextPath = location.protocol + "/service-cloud" let serviceUrl = $ContextPath+ "/webclient/chat_client/js/thirdPartyClient.js?"+"&t=" + timestamp; let thirdUserData = {}; ......
-
集成开发 此章节主要描述如何在您的系统的完成我们接续控件的集成。 登录前鉴权 同步企业系统与云客服的账号信息 您可以通过调用queryAgentInfo接口,获取可同步的座席信息,包括注册服务器信息、座席账户密码、云客服登录账号等信息,调用后将云客服登录账号与您原业务系统中的座席登录账号进行关联同步,使得在企业页面请求接续条时,能自动获取匹配的账户验证信息。 开发token生成机制与认证验证接口 开发集成页面 常见问题
-
概述 云客服提供可被直接集成的轻量级接续条,您可以轻松的将人工座席的语音处理能力集成在员工的常用操作界面上,来填补原有客户服务系统中人工语音/视频服务渠道的缺失,无需考虑排队机、计算机电信集成平台等基础设施的构建和维护成本。 轻量级接续条提供主要的语音/视频呼叫处理和座席状态控制的功能,具有如下特点: 轻量级,容易集成到不同的平台中,不占用门户和工作台的主要页面。 易于操作,客服人员签入平台、接听来话、转移呼叫、静音、状态切换或求助等操作均可通过一次点击完成。 您可通过本手册将云客服的核心功能嵌入到第三方系统中,通过iframe的方式集成座席签入签出、接续控制的界面(即轻量级接续条),如图1和图2所示。 轻量级集成不支持同一个座席多地登录、多浏览器与多环境签入,会造成事件丢失或者异常返回。若因此出现页面异常,需要退出或关闭多地登录、多浏览器与多环境签入,再刷新页面即可恢复正常。 图1 音频通话界面 图2 视频通话界面
-
操作步骤 调用座席软电话信息查询接口(queryAgentInfo)获取可用于同步的信息。 按以下格式要求获取URL,选择GET方式。 HTTPS方法:GET URL:http(s)://Domain Address/apiaccess/CC-Mangemant/v1/queryAgentInfo Domain Address请根据云客服实际的地址或域名进行替换。 例如,在华为公有云生产环境,请将Domain Address替换为service.besclouds.com,则调用URL为https://service.besclouds.com/apigovernance/api/oauth/tokenByAkSk HTTP协议是不安全协议,可能会对系统带来风险,不推荐使用。建议使用安全的HTTPS协议。 将x-app-key和Authorization的值按调用样例的格式输入到Header,获取所需输出参数,如图1所示。您可以通过表1和表2了解请求参数属性和返回参数属性的要求。 图1 queryAgentInfo调用 表1 RequestHeader说明 参数名 参数类型 参数位置 是否必填 说明 x-app-key string header True app标识。即您的app_key Authorization string header True 鉴权信息。为"Bearer "+鉴权接口获得的AccessToken Example { "x-app-key":XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX "Authorization":Bearer XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX } 表2 ResponseBody说明 参数名 参数类型 参数位置 是否必填 说明 sipServiceIp string body False 软电话注册地址,IPV4格式。 sipServicePort int body False 软电话注册端口,值为1~65535。 agents list body True 座席集合。 workNo int agents True 座席工号。 sipAccount string agents False 软电话号码。 sipPwd string agents False 软电话密码。 accountCode string agents False 云客服登录账号。 Example { "sipServiceIp":"10.100.10.10", "sipServicePort":1000, "agents": [ { "workNo": 1001, "accountCode": "11", "sipAccount": "1001", "sipPwd": "cti-1234" } ] } 同步到座席相关信息后,您可能还需要在您的系统中完成如下事项: (可选)将您业务系统中的账户与云客服座席对象做关联,在开发集成页面步骤请求云客服时需要用到关联好的账户。如果您期望企业业务系统的用户每次登录时自行选择云客服账号登录云客服,可以跳过该步骤。 (可选)为座席提供软电话号码、软电话密码以及软电话注册地址/端口号,座席需要使用这些信息登录OpenEye客户端,进行呼入呼出操作。如果您使用OpenEye以外的SIP软电话工具进行呼叫操作可以跳过该步骤。
-
监听事件的注册和事件处理程序的执行验证 完成页面集成之后,您需要测试与验证注册监听事件、移除监听事件、回调函数和一键外呼是否能正常使用。以下以Chrome浏览器为例。在验证过程中,您可以使用Nginx服务器来模拟第三方调用基础页面,您也可以使用其他您熟悉的访问方式进行。 本地开启Nginx服务器(Nginx版本可参考nginx/Windows-1.22.0),将集成页面放到nginx目录下的html中。您也可以在nginx.conf文件中配置集成页面的路径; 打开AICC页面,将您在步骤1配好的集成页面访问地址添加到地址白名单并配置弹屏; 打开音视频工作台,在您的集成页面注册事件(这里演示的页面在打开时自动注册了相应事件,所以打开时就执行了Init事件处理程序); AICC Support Demo Page Init日志是1.3.1注册监听事件的事件处理程序输出的。 座席签入并注册监听响铃事件后,通过OpenEye客户端软件(参考OpenEye软电话安装指导)拨打配好的被叫号码; 座席来电,集成页面执行响铃事件处理程序并返回信息; AICC Support Demo Page Ringing日志是1.3.1注册监听事件的事件处理程序输出的。 父主题: 测试和验证
共100000条
- 1
- ...
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- 353
- 354
- 355
- 356
- 357
- 358
- 359
- 360
- 361
- 362
- 363
- 364
- 365
- 366
- 367
- 368
- 369
- 370
- 371
- 372
- 373
- 374
- 375
- 376
- 377
- 378
- 379
- 380
- 381
- 382
- 383
- 384
- 385
- 386
- 387
- 388
- 389
- 390
- 391
- 392
- 393
- 394
- 395
- 396
- 397
- 398
- 399
- 400
- 401
- 402
- 403
- 404
- 405
- 406
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 418
- 419
- 420
- 421
- 422
- 423
- 424
- 425
- 426
- 427
- 428
- 429
- 430
- 431
- 432
- 433
- 434
- 435
- 436
- 437
- 438
- 439
- 440
- 441
- 442
- 443
- 444
- 445
- 446
- 447
- 448
- 449
- 450
- 451
- 452
- 453
- 454
- 455
- 456
- 457
- 458
- 459
- 460
- 461
- 462
- 463
- 464
- 465
- 466
- 467
- 468
- 469
- 470
- 471
- 472
- 473
- 474
- 475
- 476
- 477
- 478
- 479
- 480
- 481
- 482
- 483
- 484
- 485
- 486
- 487
- 488
- 489
- 490
- 491
- 492
- 493
- 494
- 495
- 496
- 497
- 498
- 499
- 500
- 501
- 502
- 503
- 504
- 505
- 506
- 507
- 508
- 509
- 510
- 511
- 512
- 513
- 514
- 515
- 516
- 517
- 518
- 519
- 520
- 521
- 522
- 523
- 524
- 525
- 526
- 527
- 528
- 529
- 530
- 531
- 532
- 533
- 534
- 535
- 536
- 537
- 538
- 539
- 540
- 541
- 542
- 543
- 544
- 545
- 546
- 547
- 548
- 549
- 550
- 551
- 552
- 553
- 554
- 555
- 556
- 557
- 558
- 559
- 560
- 561
- 562
- 563
- 564
- 565
- 566
- 567
- 568
- 569
- 570
- 571
- 572
- 573
- 574
- 575
- 576
- 577
- 578
- 579
- 580
- 581
- 582
- 583
- 584
- 585
- 586
- 587
- 588
- 589
- 590
- 591
- 592
- 593
- 594
- 595
- 596
- 597
- 598
- 599
- 600
- 601
- 602
- 603
- 604
- 605
- 606
- 607
- 608
- 609
- 610
- 611
- 612
- 613
- 614
- 615
- 616
- 617
- 618
- 619
- 620
- 621
- 622
- 623
- 624
- 625
- 626
- 627
- 628
- 629
- 630
- 631
- 632
- 633
- 634
- 635
- 636
- 637
- 638
- 639
- 640
- 641
- 642
- 643
- 644
- 645
- 646
- 647
- 648
- 649
- 650
- 651
- 652
- 653
- 654
- 655
- 656
- 657
- 658
- 659
- 660
- 661
- 662
- 663
- 664
- 665
- 666
- 667
- 668
- 669
- 670
- 671
- 672
- 673
- 674
- 675
- 676
- 677
- 678
- 679
- 680
- 681
- 682
- 683
- 684
- 685
- 686
- 687
- 688
- 689
- 690
- 691
- 692
- 693
- 694
- 695
- 696
- 697
- 698
- 699
- 700
- 701
- 702
- 703
- 704
- 705
- 706
- 707
- 708
- 709
- 710
- 711
- 712
- 713
- 714
- 715
- 716
- 717
- 718
- 719
- 720
- 721
- 722
- 723
- 724
- 725
- 726
- 727
- 728
- 729
- 730
- 731
- 732
- 733
- 734
- 735
- 736
- 737
- 738
- 739
- 740
- 741
- 742
- 743
- 744
- 745
- 746
- 747
- 748
- 749
- 750
- 751
- 752
- 753
- 754
- 755
- 756
- 757
- 758
- 759
- 760
- 761
- 762
- 763
- 764
- 765
- 766
- 767
- 768
- 769
- 770
- 771
- 772
- 773
- 774
- 775
- 776
- 777
- 778
- 779
- 780
- 781
- 782
- 783
- 784
- 785
- 786
- 787
- 788
- 789
- 790
- 791
- 792
- 793
- 794
- 795
- 796
- 797
- 798
- 799
- 800
- 801
- 802
- 803
- 804
- 805
- 806
- 807
- 808
- 809
- 810
- 811
- 812
- 813
- 814
- 815
- 816
- 817
- 818
- 819
- 820
- 821
- 822
- 823
- 824
- 825
- 826
- 827
- 828
- 829
- 830
- 831
- 832
- 833
- 834
- 835
- 836
- 837
- 838
- 839
- 840
- 841
- 842
- 843
- 844
- 845
- 846
- 847
- 848
- 849
- 850
- 851
- 852
- 853
- 854
- 855
- 856
- 857
- 858
- 859
- 860
- 861
- 862
- 863
- 864
- 865
- 866
- 867
- 868
- 869
- 870
- 871
- 872
- 873
- 874
- 875
- 876
- 877
- 878
- 879
- 880
- 881
- 882
- 883
- 884
- 885
- 886
- 887
- 888
- 889
- 890
- 891
- 892
- 893
- 894
- 895
- 896
- 897
- 898
- 899
- 900
- 901
- 902
- 903
- 904
- 905
- 906
- 907
- 908
- 909
- 910
- 911
- 912
- 913
- 914
- 915
- 916
- 917
- 918
- 919
- 920
- 921
- 922
- 923
- 924
- 925
- 926
- 927
- 928
- 929
- 930
- 931
- 932
- 933
- 934
- 935
- 936
- 937
- 938
- 939
- 940
- 941
- 942
- 943
- 944
- 945
- 946
- 947
- 948
- 949
- 950
- 951
- 952
- 953
- 954
- 955
- 956
- 957
- 958
- 959
- 960
- 961
- 962
- 963
- 964
- 965
- 966
- 967
- 968
- 969
- 970
- 971
- 972
- 973
- 974
- 975
- 976
- 977
- 978
- 979
- 980
- 981
- 982
- 983
- 984
- 985
- 986
- 987
- 988
- 989
- 990
- 991
- 992
- 993
- 994
- 995
- 996
- 997
- 998
- 999
- 1000
- 1001
- 1002
- 1003
- 1004
- 1005
- 1006
- 1007
- 1008
- 1009
- 1010
- 1011
- 1012
- 1013
- 1014
- 1015
- 1016
- 1017
- 1018
- 1019
- 1020
- 1021
- 1022
- 1023
- 1024
- 1025
- 1026
- 1027
- 1028
- 1029
- 1030
- 1031
- 1032
- 1033
- 1034
- 1035
- 1036
- 1037
- 1038
- 1039
- 1040
- 1041
- 1042
- 1043
- 1044
- 1045
- 1046
- 1047
- 1048
- 1049
- 1050
- 1051
- 1052
- 1053
- 1054
- 1055
- 1056
- 1057
- 1058
- 1059
- 1060
- 1061
- 1062
- 1063
- 1064
- 1065
- 1066
- 1067
- 1068
- 1069
- 1070
- 1071
- 1072
- 1073
- 1074
- 1075
- 1076
- 1077
- 1078
- 1079
- 1080
- 1081
- 1082
- 1083
- 1084
- 1085
- 1086
- 1087
- 1088
- 1089
- 1090
- 1091
- 1092
- 1093
- 1094
- 1095
- 1096
- 1097
- 1098
- 1099
- 1100
- 1101
- 1102
- 1103
- 1104
- 1105
- 1106
- 1107
- 1108
- 1109
- 1110
- 1111
- 1112
- 1113
- 1114
- 1115
- 1116
- 1117
- 1118
- 1119
- 1120
- 1121
- 1122
- 1123
- 1124
- 1125
- 1126
- 1127
- 1128
- 1129
- 1130
- 1131
- 1132
- 1133
- 1134
- 1135
- 1136
- 1137
- 1138
- 1139
- 1140
- 1141
- 1142
- 1143
- 1144
- 1145
- 1146
- 1147
- 1148
- 1149
- 1150
- 1151
- 1152
- 1153
- 1154
- 1155
- 1156
- 1157
- 1158
- 1159
- 1160
- 1161
- 1162
- 1163
- 1164
- 1165
- 1166
- 1167
- 1168
- 1169
- 1170
- 1171
- 1172
- 1173
- 1174
- 1175
- 1176
- 1177
- 1178
- 1179
- 1180
- 1181
- 1182
- 1183
- 1184
- 1185
- 1186
- 1187
- 1188
- 1189
- 1190
- 1191
- 1192
- 1193
- 1194
- 1195
- 1196
- 1197
- 1198
- 1199
- 1200
- 1201
- 1202
- 1203
- 1204
- 1205
- 1206
- 1207
- 1208
- 1209
- 1210
- 1211
- 1212
- 1213
- 1214
- 1215
- 1216
- 1217
- 1218
- 1219
- 1220
- 1221
- 1222
- 1223
- 1224
- 1225
- 1226
- 1227
- 1228
- 1229
- 1230
- 1231
- 1232
- 1233
- 1234
- 1235
- 1236
- 1237
- 1238
- 1239
- 1240
- 1241
- 1242
- 1243
- 1244
- 1245
- 1246
- 1247
- 1248
- 1249
- 1250
- 1251
- 1252
- 1253
- 1254
- 1255
- 1256
- 1257
- 1258
- 1259
- 1260
- 1261
- 1262
- 1263
- 1264
- 1265
- 1266
- 1267
- 1268
- 1269
- 1270
- 1271
- 1272
- 1273
- 1274
- 1275
- 1276
- 1277
- 1278
- 1279
- 1280
- 1281
- 1282
- 1283
- 1284
- 1285
- 1286
- 1287
- 1288
- 1289
- 1290
- 1291
- 1292
- 1293
- 1294
- 1295
- 1296
- 1297
- 1298
- 1299
- 1300
- 1301
- 1302
- 1303
- 1304
- 1305
- 1306
- 1307
- 1308
- 1309
- 1310
- 1311
- 1312
- 1313
- 1314
- 1315
- 1316
- 1317
- 1318
- 1319
- 1320
- 1321
- 1322
- 1323
- 1324
- 1325
- 1326
- 1327
- 1328
- 1329
- 1330
- 1331
- 1332
- 1333
- 1334
- 1335
- 1336
- 1337
- 1338
- 1339
- 1340
- 1341
- 1342
- 1343
- 1344
- 1345
- 1346
- 1347
- 1348
- 1349
- 1350
- 1351
- 1352
- 1353
- 1354
- 1355
- 1356
- 1357
- 1358
- 1359
- 1360
- 1361
- 1362
- 1363
- 1364
- 1365
- 1366
- 1367
- 1368
- 1369
- 1370
- 1371
- 1372
- 1373
- 1374
- 1375
- 1376
- 1377
- 1378
- 1379
- 1380
- 1381
- 1382
- 1383
- 1384
- 1385
- 1386
- 1387
- 1388
- 1389
- 1390
- 1391
- 1392
- 1393
- 1394
- 1395
- 1396
- 1397
- 1398
- 1399
- 1400
- 1401
- 1402
- 1403
- 1404
- 1405
- 1406
- 1407
- 1408
- 1409
- 1410
- 1411
- 1412
- 1413
- 1414
- 1415
- 1416
- 1417
- 1418
- 1419
- 1420
- 1421
- 1422
- 1423
- 1424
- 1425
- 1426
- 1427
- 1428
- 1429
- 1430
- 1431
- 1432
- 1433
- 1434
- 1435
- 1436
- 1437
- 1438
- 1439
- 1440
- 1441
- 1442
- 1443
- 1444
- 1445
- 1446
- 1447
- 1448
- 1449
- 1450
- 1451
- 1452
- 1453
- 1454
- 1455
- 1456
- 1457
- 1458
- 1459
- 1460
- 1461
- 1462
- 1463
- 1464
- 1465
- 1466
- 1467
- 1468
- 1469
- 1470
- 1471
- 1472
- 1473
- 1474
- 1475
- 1476
- 1477
- 1478
- 1479
- 1480
- 1481
- 1482
- 1483
- 1484
- 1485
- 1486
- 1487
- 1488
- 1489
- 1490
- 1491
- 1492
- 1493
- 1494
- 1495
- 1496
- 1497
- 1498
- 1499
- 1500
- 1501
- 1502
- 1503
- 1504
- 1505
- 1506
- 1507
- 1508
- 1509
- 1510
- 1511
- 1512
- 1513
- 1514
- 1515
- 1516
- 1517
- 1518
- 1519
- 1520
- 1521
- 1522
- 1523
- 1524
- 1525
- 1526
- 1527
- 1528
- 1529
- 1530
- 1531
- 1532
- 1533
- 1534
- 1535
- 1536
- 1537
- 1538
- 1539
- 1540
- 1541
- 1542
- 1543
- 1544
- 1545
- 1546
- 1547
- 1548
- 1549
- 1550
- 1551
- 1552
- 1553
- 1554
- 1555
- 1556
- 1557
- 1558
- 1559
- 1560
- 1561
- 1562
- 1563
- 1564
- 1565
- 1566
- 1567
- 1568
- 1569
- 1570
- 1571
- 1572
- 1573
- 1574
- 1575
- 1576
- 1577
- 1578
- 1579
- 1580
- 1581
- 1582
- 1583
- 1584
- 1585
- 1586
- 1587
- 1588
- 1589
- 1590
- 1591
- 1592
- 1593
- 1594
- 1595
- 1596
- 1597
- 1598
- 1599
- 1600
- 1601
- 1602
- 1603
- 1604
- 1605
- 1606
- 1607
- 1608
- 1609
- 1610
- 1611
- 1612
- 1613
- 1614
- 1615
- 1616
- 1617
- 1618
- 1619
- 1620
- 1621
- 1622
- 1623
- 1624
- 1625
- 1626
- 1627
- 1628
- 1629
- 1630
- 1631
- 1632
- 1633
- 1634
- 1635
- 1636
- 1637
- 1638
- 1639
- 1640
- 1641
- 1642
- 1643
- 1644
- 1645
- 1646
- 1647
- 1648
- 1649
- 1650
- 1651
- 1652
- 1653
- 1654
- 1655
- 1656
- 1657
- 1658
- 1659
- 1660
- 1661
- 1662
- 1663
- 1664
- 1665
- 1666
- 1667
- 1668
- 1669
- 1670
- 1671
- 1672
- 1673
- 1674
- 1675
- 1676
- 1677
- 1678
- 1679
- 1680
- 1681
- 1682
- 1683
- 1684
- 1685
- 1686
- 1687
- 1688
- 1689
- 1690
- 1691
- 1692
- 1693
- 1694
- 1695
- 1696
- 1697
- 1698
- 1699
- 1700
- 1701
- 1702
- 1703
- 1704
- 1705
- 1706
- 1707
- 1708
- 1709
- 1710
- 1711
- 1712
- 1713
- 1714
- 1715
- 1716
- 1717
- 1718
- 1719
- 1720
- 1721
- 1722
- 1723
- 1724
- 1725
- 1726
- 1727
- 1728
- 1729
- 1730
- 1731
- 1732
- 1733
- 1734
- 1735
- 1736
- 1737
- 1738
- 1739
- 1740
- 1741
- 1742
- 1743
- 1744
- 1745
- 1746
- 1747
- 1748
- 1749
- 1750
- 1751
- 1752
- 1753
- 1754
- 1755
- 1756
- 1757
- 1758
- 1759
- 1760
- 1761
- 1762
- 1763
- 1764
- 1765
- 1766
- 1767
- 1768
- 1769
- 1770
- 1771
- 1772
- 1773
- 1774
- 1775
- 1776
- 1777
- 1778
- 1779
- 1780
- 1781
- 1782
- 1783
- 1784
- 1785
- 1786
- 1787
- 1788
- 1789
- 1790
- 1791
- 1792
- 1793
- 1794
- 1795
- 1796
- 1797
- 1798
- 1799
- 1800
- 1801
- 1802
- 1803
- 1804
- 1805
- 1806
- 1807
- 1808
- 1809
- 1810
- 1811
- 1812
- 1813
- 1814
- 1815
- 1816
- 1817
- 1818
- 1819
- 1820
- 1821
- 1822
- 1823
- 1824
- 1825
- 1826
- 1827
- 1828
- 1829
- 1830
- 1831
- 1832
- 1833
- 1834
- 1835
- 1836
- 1837
- 1838
- 1839
- 1840
- 1841
- 1842
- 1843
- 1844
- 1845
- 1846
- 1847
- 1848
- 1849
- 1850
- 1851
- 1852
- 1853
- 1854
- 1855
- 1856
- 1857
- 1858
- 1859
- 1860
- 1861
- 1862
- 1863
- 1864
- 1865
- 1866
- 1867
- 1868
- 1869
- 1870
- 1871
- 1872
- 1873
- 1874
- 1875
- 1876
- 1877
- 1878
- 1879
- 1880
- 1881
- 1882
- 1883
- 1884
- 1885
- 1886
- 1887
- 1888
- 1889
- 1890
- 1891
- 1892
- 1893
- 1894
- 1895
- 1896
- 1897
- 1898
- 1899
- 1900
- 1901
- 1902
- 1903
- 1904
- 1905
- 1906
- 1907
- 1908
- 1909
- 1910
- 1911
- 1912
- 1913
- 1914
- 1915
- 1916
- 1917
- 1918
- 1919
- 1920
- 1921
- 1922
- 1923
- 1924
- 1925
- 1926
- 1927
- 1928
- 1929
- 1930
- 1931
- 1932
- 1933
- 1934
- 1935
- 1936
- 1937
- 1938
- 1939
- 1940
- 1941
- 1942
- 1943
- 1944
- 1945
- 1946
- 1947
- 1948
- 1949
- 1950
- 1951
- 1952
- 1953
- 1954
- 1955
- 1956
- 1957
- 1958
- 1959
- 1960
- 1961
- 1962
- 1963
- 1964
- 1965
- 1966
- 1967
- 1968
- 1969
- 1970
- 1971
- 1972
- 1973
- 1974
- 1975
- 1976
- 1977
- 1978
- 1979
- 1980
- 1981
- 1982
- 1983
- 1984
- 1985
- 1986
- 1987
- 1988
- 1989
- 1990
- 1991
- 1992
- 1993
- 1994
- 1995
- 1996
- 1997
- 1998
- 1999
- 2000
- 2001
- 2002
- 2003
- 2004
- 2005
- 2006
- 2007
- 2008
- 2009
- 2010
- 2011
- 2012
- 2013
- 2014
- 2015
- 2016
- 2017
- 2018
- 2019
- 2020
- 2021
- 2022
- 2023
- 2024
- 2025
- 2026
- 2027
- 2028
- 2029
- 2030
- 2031
- 2032
- 2033
- 2034
- 2035
- 2036
- 2037
- 2038
- 2039
- 2040
- 2041
- 2042
- 2043
- 2044
- 2045
- 2046
- 2047
- 2048
- 2049
- 2050
- 2051
- 2052
- 2053
- 2054
- 2055
- 2056
- 2057
- 2058
- 2059
- 2060
- 2061
- 2062
- 2063
- 2064
- 2065
- 2066
- 2067
- 2068
- 2069
- 2070
- 2071
- 2072
- 2073
- 2074
- 2075
- 2076
- 2077
- 2078
- 2079
- 2080
- 2081
- 2082
- 2083
- 2084
- 2085
- 2086
- 2087
- 2088
- 2089
- 2090
- 2091
- 2092
- 2093
- 2094
- 2095
- 2096
- 2097
- 2098
- 2099
- 2100
- 2101
- 2102
- 2103
- 2104
- 2105
- 2106
- 2107
- 2108
- 2109
- 2110
- 2111
- 2112
- 2113
- 2114
- 2115
- 2116
- 2117
- 2118
- 2119
- 2120
- 2121
- 2122
- 2123
- 2124
- 2125
- 2126
- 2127
- 2128
- 2129
- 2130
- 2131
- 2132
- 2133
- 2134
- 2135
- 2136
- 2137
- 2138
- 2139
- 2140
- 2141
- 2142
- 2143
- 2144
- 2145
- 2146
- 2147
- 2148
- 2149
- 2150
- 2151
- 2152
- 2153
- 2154
- 2155
- 2156
- 2157
- 2158
- 2159
- 2160
- 2161
- 2162
- 2163
- 2164
- 2165
- 2166
- 2167
- 2168
- 2169
- 2170
- 2171
- 2172
- 2173
- 2174
- 2175
- 2176
- 2177
- 2178
- 2179
- 2180
- 2181
- 2182
- 2183
- 2184
- 2185
- 2186
- 2187
- 2188
- 2189
- 2190
- 2191
- 2192
- 2193
- 2194
- 2195
- 2196
- 2197
- 2198
- 2199
- 2200
- 2201
- 2202
- 2203
- 2204
- 2205
- 2206
- 2207
- 2208
- 2209
- 2210
- 2211
- 2212
- 2213
- 2214
- 2215
- 2216
- 2217
- 2218
- 2219
- 2220
- 2221
- 2222
- 2223
- 2224
- 2225
- 2226
- 2227
- 2228
- 2229
- 2230
- 2231
- 2232
- 2233
- 2234
- 2235
- 2236
- 2237
- 2238
- 2239
- 2240
- 2241
- 2242
- 2243
- 2244
- 2245
- 2246
- 2247
- 2248
- 2249
- 2250
- 2251
- 2252
- 2253
- 2254
- 2255
- 2256
- 2257
- 2258
- 2259
- 2260
- 2261
- 2262
- 2263
- 2264
- 2265
- 2266
- 2267
- 2268
- 2269
- 2270
- 2271
- 2272
- 2273
- 2274
- 2275
- 2276
- 2277
- 2278
- 2279
- 2280
- 2281
- 2282
- 2283
- 2284
- 2285
- 2286
- 2287
- 2288
- 2289
- 2290
- 2291
- 2292
- 2293
- 2294
- 2295
- 2296
- 2297
- 2298
- 2299
- 2300
- 2301
- 2302
- 2303
- 2304
- 2305
- 2306
- 2307
- 2308
- 2309
- 2310
- 2311
- 2312
- 2313
- 2314
- 2315
- 2316
- 2317
- 2318
- 2319
- 2320
- 2321
- 2322
- 2323
- 2324
- 2325
- 2326
- 2327
- 2328
- 2329
- 2330
- 2331
- 2332
- 2333
- 2334
- 2335
- 2336
- 2337
- 2338
- 2339
- 2340
- 2341
- 2342
- 2343
- 2344
- 2345
- 2346
- 2347
- 2348
- 2349
- 2350
- 2351
- 2352
- 2353
- 2354
- 2355
- 2356
- 2357
- 2358
- 2359
- 2360
- 2361
- 2362
- 2363
- 2364
- 2365
- 2366
- 2367
- 2368
- 2369
- 2370
- 2371
- 2372
- 2373
- 2374
- 2375
- 2376
- 2377
- 2378
- 2379
- 2380
- 2381
- 2382
- 2383
- 2384
- 2385
- 2386
- 2387
- 2388
- 2389
- 2390
- 2391
- 2392
- 2393
- 2394
- 2395
- 2396
- 2397
- 2398
- 2399
- 2400
- 2401
- 2402
- 2403
- 2404
- 2405
- 2406
- 2407
- 2408
- 2409
- 2410
- 2411
- 2412
- 2413
- 2414
- 2415
- 2416
- 2417
- 2418
- 2419
- 2420
- 2421
- 2422
- 2423
- 2424
- 2425
- 2426
- 2427
- 2428
- 2429
- 2430
- 2431
- 2432
- 2433
- 2434
- 2435
- 2436
- 2437
- 2438
- 2439
- 2440
- 2441
- 2442
- 2443
- 2444
- 2445
- 2446
- 2447
- 2448
- 2449
- 2450
- 2451
- 2452
- 2453
- 2454
- 2455
- 2456
- 2457
- 2458
- 2459
- 2460
- 2461
- 2462
- 2463
- 2464
- 2465
- 2466
- 2467
- 2468
- 2469
- 2470
- 2471
- 2472
- 2473
- 2474
- 2475
- 2476
- 2477
- 2478
- 2479
- 2480
- 2481
- 2482
- 2483
- 2484
- 2485
- 2486
- 2487
- 2488
- 2489
- 2490
- 2491
- 2492
- 2493
- 2494
- 2495
- 2496
- 2497
- 2498
- 2499
- 2500
- 2501
- 2502
- 2503
- 2504
- 2505
- 2506
- 2507
- 2508
- 2509
- 2510
- 2511
- 2512
- 2513
- 2514
- 2515
- 2516
- 2517
- 2518
- 2519
- 2520
- 2521
- 2522
- 2523
- 2524
- 2525
- 2526
- 2527
- 2528
- 2529
- 2530
- 2531
- 2532
- 2533
- 2534
- 2535
- 2536
- 2537
- 2538
- 2539
- 2540
- 2541
- 2542
- 2543
- 2544
- 2545
- 2546
- 2547
- 2548
- 2549
- 2550
- 2551
- 2552
- 2553
- 2554
- 2555
- 2556
- 2557
- 2558
- 2559
- 2560
- 2561
- 2562
- 2563
- 2564
- 2565
- 2566
- 2567
- 2568
- 2569
- 2570
- 2571
- 2572
- 2573
- 2574
- 2575
- 2576
- 2577
- 2578
- 2579
- 2580
- 2581
- 2582
- 2583
- 2584
- 2585
- 2586
- 2587
- 2588
- 2589
- 2590
- 2591
- 2592
- 2593
- 2594
- 2595
- 2596
- 2597
- 2598
- 2599
- 2600
- 2601
- 2602
- 2603
- 2604
- 2605
- 2606
- 2607
- 2608
- 2609
- 2610
- 2611
- 2612
- 2613
- 2614
- 2615
- 2616
- 2617
- 2618
- 2619
- 2620
- 2621
- 2622
- 2623
- 2624
- 2625
- 2626
- 2627
- 2628
- 2629
- 2630
- 2631
- 2632
- 2633
- 2634
- 2635
- 2636
- 2637
- 2638
- 2639
- 2640
- 2641
- 2642
- 2643
- 2644
- 2645
- 2646
- 2647
- 2648
- 2649
- 2650
- 2651
- 2652
- 2653
- 2654
- 2655
- 2656
- 2657
- 2658
- 2659
- 2660
- 2661
- 2662
- 2663
- 2664
- 2665
- 2666
- 2667
- 2668
- 2669
- 2670
- 2671
- 2672
- 2673
- 2674
- 2675
- 2676
- 2677
- 2678
- 2679
- 2680
- 2681
- 2682
- 2683
- 2684
- 2685
- 2686
- 2687
- 2688
- 2689
- 2690
- 2691
- 2692
- 2693
- 2694
- 2695
- 2696
- 2697
- 2698
- 2699
- 2700
- 2701
- 2702
- 2703
- 2704
- 2705
- 2706
- 2707
- 2708
- 2709
- 2710
- 2711
- 2712
- 2713
- 2714
- 2715
- 2716
- 2717
- 2718
- 2719
- 2720
- 2721
- 2722
- 2723
- 2724
- 2725
- 2726
- 2727
- 2728
- 2729
- 2730
- 2731
- 2732
- 2733
- 2734
- 2735
- 2736
- 2737
- 2738
- 2739
- 2740
- 2741
- 2742
- 2743
- 2744
- 2745
- 2746
- 2747
- 2748
- ...
- 2749
- 2750
- 2751
- 2752
- 2753
- 2754
- 2755
- 2756
- 2757
- 2758
- 2759
- 2760
- 2761
- 2762
- 2763
- 2764
- 2765
- 2766
- 2767
- 2768
- 2769
- 2770
- 2771
- 2772
- 2773
- 2774
- 2775
- 2776
- 2777
- 2778
- 2779
- 2780
- 2781
- 2782
- 2783
- 2784
- 2785
- 2786
- 2787
- 2788
- 2789
- 2790
- 2791
- 2792
- 2793
- 2794
- 2795
- 2796
- 2797
- 2798
- 2799
- 2800
- 2801
- 2802
- 2803
- 2804
- 2805
- 2806
- 2807
- 2808
- 2809
- 2810
- 2811
- 2812
- 2813
- 2814
- 2815
- 2816
- 2817
- 2818
- 2819
- 2820
- 2821
- 2822
- 2823
- 2824
- 2825
- 2826
- 2827
- 2828
- 2829
- 2830
- 2831
- 2832
- 2833
- 2834
- 2835
- 2836
- 2837
- 2838
- 2839
- 2840
- 2841
- 2842
- 2843
- 2844
- 2845
- 2846
- 2847
- 2848
- 2849
- 2850
- 2851
- 2852
- 2853
- 2854
- 2855
- 2856
- 2857
- 2858
- 2859
- 2860
- 2861
- 2862
- 2863
- 2864
- 2865
- 2866
- 2867
- 2868
- 2869
- 2870
- 2871
- 2872
- 2873
- 2874
- 2875
- 2876
- 2877
- 2878
- 2879
- 2880
- 2881
- 2882
- 2883
- 2884
- 2885
- 2886
- 2887
- 2888
- 2889
- 2890
- 2891
- 2892
- 2893
- 2894
- 2895
- 2896
- 2897
- 2898
- 2899
- 2900
- 2901
- 2902
- 2903
- 2904
- 2905
- 2906
- 2907
- 2908
- 2909
- 2910
- 2911
- 2912
- 2913
- 2914
- 2915
- 2916
- 2917
- 2918
- 2919
- 2920
- 2921
- 2922
- 2923
- 2924
- 2925
- 2926
- 2927
- 2928
- 2929
- 2930
- 2931
- 2932
- 2933
- 2934
- 2935
- 2936
- 2937
- 2938
- 2939
- 2940
- 2941
- 2942
- 2943
- 2944
- 2945
- 2946
- 2947
- 2948
- 2949
- 2950
- 2951
- 2952
- 2953
- 2954
- 2955
- 2956
- 2957
- 2958
- 2959
- 2960
- 2961
- 2962
- 2963
- 2964
- 2965
- 2966
- 2967
- 2968
- 2969
- 2970
- 2971
- 2972
- 2973
- 2974
- 2975
- 2976
- 2977
- 2978
- 2979
- 2980
- 2981
- 2982
- 2983
- 2984
- 2985
- 2986
- 2987
- 2988
- 2989
- 2990
- 2991
- 2992
- 2993
- 2994
- 2995
- 2996
- 2997
- 2998
- 2999
- 3000
- 3001
- 3002
- 3003
- 3004
- 3005
- 3006
- 3007
- 3008
- 3009
- 3010
- 3011
- 3012
- 3013
- 3014
- 3015
- 3016
- 3017
- 3018
- 3019
- 3020
- 3021
- 3022
- 3023
- 3024
- 3025
- 3026
- 3027
- 3028
- 3029
- 3030
- 3031
- 3032
- 3033
- 3034
- 3035
- 3036
- 3037
- 3038
- 3039
- 3040
- 3041
- 3042
- 3043
- 3044
- 3045
- 3046
- 3047
- 3048
- 3049
- 3050
- 3051
- 3052
- 3053
- 3054
- 3055
- 3056
- 3057
- 3058
- 3059
- 3060
- 3061
- 3062
- 3063
- 3064
- 3065
- 3066
- 3067
- 3068
- 3069
- 3070
- 3071
- 3072
- 3073
- 3074
- 3075
- 3076
- 3077
- 3078
- 3079
- 3080
- 3081
- 3082
- 3083
- 3084
- 3085
- 3086
- 3087
- 3088
- 3089
- 3090
- 3091
- 3092
- 3093
- 3094
- 3095
- 3096
- 3097
- 3098
- 3099
- 3100
- 3101
- 3102
- 3103
- 3104
- 3105
- 3106
- 3107
- 3108
- 3109
- 3110
- 3111
- 3112
- 3113
- 3114
- 3115
- 3116
- 3117
- 3118
- 3119
- 3120
- 3121
- 3122
- 3123
- 3124
- 3125
- 3126
- 3127
- 3128
- 3129
- 3130
- 3131
- 3132
- 3133
- 3134
- 3135
- 3136
- 3137
- 3138
- 3139
- 3140
- 3141
- 3142
- 3143
- 3144
- 3145
- 3146
- 3147
- 3148
- 3149
- 3150
- 3151
- 3152
- 3153
- 3154
- 3155
- 3156
- 3157
- 3158
- 3159
- 3160
- 3161
- 3162
- 3163
- 3164
- 3165
- 3166
- 3167
- 3168
- 3169
- 3170
- 3171
- 3172
- 3173
- 3174
- 3175
- 3176
- 3177
- 3178
- 3179
- 3180
- 3181
- 3182
- 3183
- 3184
- 3185
- 3186
- 3187
- 3188
- 3189
- 3190
- 3191
- 3192
- 3193
- 3194
- 3195
- 3196
- 3197
- 3198
- 3199
- 3200
- 3201
- 3202
- 3203
- 3204
- 3205
- 3206
- 3207
- 3208
- 3209
- 3210
- 3211
- 3212
- 3213
- 3214
- 3215
- 3216
- 3217
- 3218
- 3219
- 3220
- 3221
- 3222
- 3223
- 3224
- 3225
- 3226
- 3227
- 3228
- 3229
- 3230
- 3231
- 3232
- 3233
- 3234
- 3235
- 3236
- 3237
- 3238
- 3239
- 3240
- 3241
- 3242
- 3243
- 3244
- 3245
- 3246
- 3247
- 3248
- 3249
- 3250
- 3251
- 3252
- 3253
- 3254
- 3255
- 3256
- 3257
- 3258
- 3259
- 3260
- 3261
- 3262
- 3263
- 3264
- 3265
- 3266
- 3267
- 3268
- 3269
- 3270
- 3271
- 3272
- 3273
- 3274
- 3275
- 3276
- 3277
- 3278
- 3279
- 3280
- 3281
- 3282
- 3283
- 3284
- 3285
- 3286
- 3287
- 3288
- 3289
- 3290
- 3291
- 3292
- 3293
- 3294
- 3295
- 3296
- 3297
- 3298
- 3299
- 3300
- 3301
- 3302
- 3303
- 3304
- 3305
- 3306
- 3307
- 3308
- 3309
- 3310
- 3311
- 3312
- 3313
- 3314
- 3315
- 3316
- 3317
- 3318
- 3319
- 3320
- 3321
- 3322
- 3323
- 3324
- 3325
- 3326
- 3327
- 3328
- 3329
- 3330
- 3331
- 3332
- 3333
- 3333
推荐文章