AiPPT接口文件PHP版本全,智能生成PPT文件并下载
开放平台https://open.aippt.cn/docs/zh/guide/introduce.html?php const AIPPT_API ; const AIPPT_SECRET ; const AIPPT_UID ; /** * AK/SK 签名认证工具类 * 用于生成签名并调用 AIPPT 的 Token/Code 接口 */ class AIPPTClient { // API 基础配置 private $apiUid; // AK private $apiKey; // AK private $secretKey; // SK private $baseUrl; // API 基础地址 /** * 构造函数初始化配置 * param string $apiKey API Key (AK) * param string $secretKey Secret Key (SK) * param string $baseUrl API 基础地址 */ public function __construct($apiUid, $apiKey, $secretKey, $baseUrl https://co.aippt.cn) { $this-apiUid $apiUid; $this-apiKey $apiKey; $this-secretKey $secretKey; $this-baseUrl rtrim($baseUrl, /); } /** * 格式化API路径 (确保以/开头和结尾) * param string $uri 原始路径 * return string 格式化后的路径 */ private function formatApiUri($uri) { $uri / . ltrim($uri, /); if (substr($uri, -1) ! /) { $uri . /; } return $uri; } /** * 生成 HMAC-SHA1 Base64 签名 * param string $httpMethod HTTP请求方法 (GET/POST) * param string $apiUri API路径 (需以/开头和结尾) * param int $timestamp 时间戳(秒) * return string 最终签名值 */ private function generateSignature($httpMethod, $apiUri, $timestamp) { $apiUri $this-formatApiUri($apiUri); // 1. 构造待签字符串 (HTTP方法API路径时间戳) $stringToSign $httpMethod . . $apiUri . . $timestamp; // 2. HMAC-SHA1 加密 Base64 编码 $hash hash_hmac(sha1, $stringToSign, $this-secretKey, true); $signature base64_encode($hash); return $signature; } /** * 发送通用HTTP请求 * param string $apiPath API接口路径 * param string $method HTTP方法 (GET/POST) * param array $params 请求参数GET为queryPOST为form-data * param array $files 上传的文件列表键为参数名值为文件路径 * return array 接口响应数据 * throws Exception 请求失败时抛出异常 */ private function sendRequest($apiPath, $method GET, $params [], $files []) { // 1. 基础参数初始化 $httpMethod strtoupper($method); $apiUri $this-formatApiUri($apiPath); $timestamp time(); // 2. 构建请求URL $url $this-baseUrl . $apiUri; if ($httpMethod GET !empty($params)) { $url . ? . http_build_query($params); } // 3. 初始化cURL $ch curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // 跟随301/302重定向 curl_setopt($ch, CURLOPT_MAXREDIRS, 5); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 测试环境临时关闭生产建议开启 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 4. 设置请求头任务创建需要x-token鉴权接口需要x-signature $headers [ x-api-key: . $this-apiKey, x-channel: , // 渠道标识无则传空 ]; // 任务创建接口用x-token鉴权接口用x-timestampx-signature if (strpos($apiPath, /api/grant/) 0) { // 鉴权接口获取token/code $signature $this-generateSignature($httpMethod, $apiUri, $timestamp); $headers[] x-timestamp: . $timestamp; $headers[] x-signature: . $signature; } else { // 业务接口任务创建 if (empty($this-access_token())) { throw new Exception(调用业务接口前必须设置有效的x-token); } $headers[] x-token: . $this-access_token(); } curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); // 5. 处理POST请求含文件上传 if ($httpMethod POST) { curl_setopt($ch, CURLOPT_POST, true); // 构建POST数据兼容普通参数文件 $postData []; // 普通参数 foreach ($params as $key $value) { $postData[$key] $value; } // 文件参数 foreach ($files as $fieldName $filePath) { if (!file_exists($filePath)) { throw new Exception(文件不存在{$filePath}); } // CURLFile 兼容PHP 5.5处理文件上传 $postData[$fieldName] new CURLFile(realpath($filePath), mime_content_type($filePath), basename($filePath)); } curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); } // 6. 执行请求并处理响应 $response curl_exec($ch); $httpCode curl_getinfo($ch, CURLINFO_HTTP_CODE); if (curl_errno($ch)) { $error curl_error($ch); curl_close($ch); throw new Exception(cURL请求失败: . $error); } curl_close($ch); if ($httpCode ! 200) { throw new Exception(HTTP请求失败状态码: {$httpCode}响应内容: {$response}); } $result json_decode($response, true); if (json_last_error() ! JSON_ERROR_NONE) { throw new Exception(响应JSON解析失败: . json_last_error_msg()); } if (isset($result[code]) $result[code] ! 0) { throw new Exception(接口返回异常: {$result[msg]} (code: {$result[code]})); } return $result; } /** * 获取认证Token * param string $channel 渠道标识 (无则传空字符串) * return array Token响应数据 (包含token、time_expire等) * throws Exception 请求失败时抛出异常 */ private function getToken($channel ) { $queryParams [ uid $this-apiUid, channel $channel ]; return $this-sendRequest(/api/grant/token, GET, $queryParams); } /** * 本地获取访问凭证 */ public function access_token() { $accessTokenMp ; $file access_token_aippt.txt; $savePath $_SERVER[DOCUMENT_ROOT] . DIRECTORY_SEPARATOR . temp . DIRECTORY_SEPARATOR; if (!file_exists($savePath)) { mkdir($savePath, 0777, true); } $filePath $savePath . $file; if (file_exists($filePath)) { $fp fopen($filePath, r); $fpStr fread($fp, filesize($filePath)); fclose($fp); if ($fpStr) { $arr explode(_||_, $fpStr); $accessTime $arr[1]; if ($accessTime $accessTime time()) { $accessTokenMp $arr[0]; } } } if (!$accessTokenMp) { $tokenData $this-getToken(); $accessTokenMp $tokenData[data][token]; $accessTokenValidity $tokenData[data][time_expire]; $_str $accessTokenMp . _||_ . (time() $accessTokenValidity - 60); file_put_contents($filePath, $_str); } return $accessTokenMp; } /** * 创建PPT生成任务 * param array $params 任务参数根据type传对应字段 * param array $files 上传文件列表键为参数名值为文件路径 * return array 任务创建响应数据含任务ID * throws Exception */ public function createTask($params, $files []) { // 必传参数校验 if (!isset($params[type])) { throw new Exception(type参数为必传项); } $type $params[type]; // 根据type校验核心参数简化版可根据实际需求扩展 $checkRules [ 1 [required [title]], // 智能生成 7 [required [title, content]], // Markdown粘贴 8 [required [id]], // 预置词 11 [required [title, content]], // 自由输入 16 [required [link]], // 导入URL 3 [required [], files [file]], // 上传Word 4 [required [], files [file]], // 上传XMind 17 [required [title], files [files]], // 上传参考文档 ]; if (isset($checkRules[$type])) { // 校验普通必传参数 foreach ($checkRules[$type][required] as $field) { if (!isset($params[$field]) || $params[$field] ) { throw new Exception(type{$type}时{$field}为必传项); } } // 校验文件参数 if (isset($checkRules[$type][files])) { foreach ($checkRules[$type][files] as $fileField) { if (!isset($files[$fileField])) { throw new Exception(type{$type}时{$fileField}文件为必传项); } } } } // 调用任务创建接口 return $this-sendRequest(/api/ai/chat/v2/task, POST, $params, $files); } /** * 模板套装列表筛选项 * return array 创建响应数据 * throws Exception */ public function templateSuitList() { // 调用任务创建接口 return $this-sendRequest(/api/template_component/suit/select); } /** * 模板套装列表 * param array $params 任务参数根据type传对应字段 * return array 创建响应数据 * throws Exception */ public function templateList($params) { // 调用任务创建接口 return $this-sendRequest(/api/template_component/suit/search, GET, $params); } /** * 作品生成 * param array $params 任务参数根据type传对应字段 * return array 创建响应数据 * throws Exception */ public function createWork($params) { return $this-sendRequest(/api/design/v2/save, POST, $params); } /** * 作品导出 * param array $params 任务参数根据type传对应字段 * return array 创建响应数据 * throws Exception */ public function exportWork($params) { return $this-sendRequest(/api/download/export/file, POST, $params); } /** * 作品导出结果 * param array $params 任务参数根据type传对应字段 * return array 创建响应数据 * throws Exception */ public function exportExport($params) { return $this-sendRequest(/api/download/export/file/result, POST, $params); } } // 使用示例 try { // 2. 初始化客户端 $client new AIPPTClient(AIPPT_UID, AIPPT_API, AIPPT_SECRET); // 获取token----------------------------------------------- echo pre; // $tokenResult $client-access_token(); // 4. 示例1创建任务----------------------------------------------- $content # **性格测试2问卷调研结论总结** ## 一、核心发现 本次调研共收集8份有效样本通过对16个维度的统计分析可以得出以下核心结论 **样本群体呈现“务实感性型”人格倾向**在生活态度上表现出强烈的现实主义倾向但在情感决策中却依赖直觉与感觉形成“行为务实、情感随缘”的鲜明特征。 ## 二、四大核心特质总结 ### 1. **务实导向的生活观** - **高度一致性**超过60%的受访者认同“关注实际生活”、“情侣聊实际话题” - **表现**偏好实际行为评价75%、不喜深挖抽象意义75% - **内涵**群体普遍重视可触摸、可验证的现实生活避免过度哲思与空想 ### 2. **随性但有秩序的生活方式** - **矛盾统一**周末高度无计划87.5%却重视环境秩序75% - **表现**享受即兴安排但需要物品归位的生活框架 - **内涵**追求“框架内的自由”——在整洁有序的基础上享受随性 ### 3. **直觉驱动的决策模式** - **情感直觉强**62.5%相信“第一眼正缘”同样比例会“凭感觉选择” - **对比**虽然在生活中务实但在关键情感决策中依赖直觉而非逻辑 - **内涵**形成了“日常理性、情感感性”的二元决策系统 ### 4. **中庸的社交倾向** - **无明显偏好**在外向/内向、社交主动度等维度上分布均衡 - **表现**既不完全回避社交也不过度热衷 - **内涵**社交能量随情境调节无固定模式 ## 三、内在张力与平衡 本群体呈现出三组有趣的**心理平衡点** 1. **务实与感性的平衡**生活中务实高效情感上相信缘分 2. **随性与秩序的平衡**时间安排随意空间管理严格 3. **探索与安稳的平衡**愿意尝试新路线但总体生活态度务实 ## 四、群体画像标签 基于以上分析可为样本群体贴上以下标签 - **标签1**现实主义者非浪漫空想型 - **标签2**直觉决策者情感跟随感觉 - **标签3**有序随性派整洁框架自由安排 - **标签4**社交情境者无固定社交模式 ## 五、应用启示 ### 针对产品/服务设计 - 提供**结构化但选择自由**的方案符合“有序随性”需求 - 内容强调**实用价值情感共鸣**兼顾务实与感性 - 避免过度抽象或完全无序的体验设计 ### 针对人际匹配 - 适合与**同样务实但有一定生活情趣**的伴侣相处 - 需要理解其“秩序需求”与“随性安排”的共存 - 情感建立可依赖“第一眼感觉”关系维护需“实际行动” ### 针对个人发展 - 可加强**情感决策的理性补充**避免完全依赖直觉 - 利用“秩序偏好”建立高效生活系统 - 在务实基础上适度增加生活“诗意时刻” ## 六、调研价值与局限 ### 价值 - 揭示了“务实”与“感性”并非对立可在同一人格中共存 - 发现了“秩序需求”与“时间随性”的有趣组合 - 为理解当代年轻群体性格复杂性提供了样本参考 ### 局限 - 样本量较小n8结论需谨慎推广 - 样本来源集中同一IP可能存在群体同质化 - 问卷为自评数据可能存在社会赞许性偏差 --- ## 结语 本次性格测试描绘出一个**理性与感性交织、秩序与随性共存**的群体形象。他们在生活中脚踏实地在情感上相信缘分他们享受无计划的周末却需要整洁有序的家居环境。这种看似矛盾的特质组合恰恰反映了现代人复杂而多维的性格结构提示我们在理解人格时应避免简单二分更多关注不同维度间的动态平衡与情境适配。 如需进一步分析或调整测试维度可根据此结论进行问卷优化与深度研究。; $taskParams [ type 7, // Markdown粘贴 title 性格测试报告, // 必传 content $content, // 必传 sub_type 1, // 保持原文默认 model deepSeek-v3 // 智谱模型 // senior_options json_encode([ // 高级配置 // page 3, // group 6, // scene 18, // tone 40, // language 47 // ]) ]; $taskResult $client-createTask($taskParams); echo 任务创建成功:br; print_r($taskResult); // 获取PPT模版筛选类型---------------------------------------------- // $rsarrsai $client-templateSuitList(); // print_r($rsarrsai); // 获取PPT模版17618----------------------------------------------- // $params array( // colour_id 9, // style_id 1, // page_size 500 // ); // $rsarr $client-templateList($params); // print_r($rsarr); // foreach ($rsarr[data][list] as $item) { // echo 模版ID: . $item[id] . br; // echo 模版封面br; // echo img src . $item[cover_img] . width200br; // echo br; // } // 作品生成----------------------------------------------- $taskParams1 [ name 性格测试报告, task_id $taskResult[data][id], template_id 17618 ]; $taskResult1 $client-createWork($taskParams1); echo 作品生成成功:br; print_r($taskResult1); // 作品导出----------------------------------------------- $taskParams2 [ id $taskResult1[data][id], format pdf, edit true, files_to_zip false ]; $taskResult2 $client-exportWork($taskParams2); echo 作品导出成功使用作品导出结果[导出文件]:br; print_r($taskResult2); // 作品导出结果----------------------------------------------- // $taskParams [ // task_key $taskResult2[data] // ]; // $taskResult3 $client-exportExport($taskParams); // echo 作品导出结果成功:br; // print_r($taskResult3); } catch (Exception $e) { echo 请求失败: . $e-getMessage() . \n; }

相关新闻

华为 S5700 三层交换 VLAN 互通与 ACL 隔离实战笔记

华为 S5700 三层交换 VLAN 互通与 ACL 隔离实战笔记

华为 S5700 三层交换机:多网段互通与 ACL 精准访问控制实战📝 华为 S5700 三层交换 VLAN 互通与 ACL 隔离实战笔记1. 物理接线与 IP 规划2. 2. 核心交换机配置 (SW1) —— 负责三层路由与策略3. 接入交换机配置 (SW2) —— 负责二层透传4. 必看检查点 (防…

2026/7/5 7:36:00 阅读更多 →
微网电池储能容量优化配置的实践与思考

微网电池储能容量优化配置的实践与思考

关键词:储能容量优化 储能配置 微网 编程环境:matlab 主题:基于混合整数规划方法的微网电池储能容量优化配置 代码主要实现: [1]目的为实现微电网内电池容量的优化配置,目标函数为配置过程中整体的运行成本最小或者经…

2026/7/5 7:35:51 阅读更多 →
20260307 ROS2学习

20260307 ROS2学习

解释 ROS 2 的 Python launch 文件是如何写出来的。 一、从“步骤”到“代码”的映射表 : 序号你本来想做的步骤在 Python launch 文件中对应的写法1导入工具箱:要用到 ROS 2 的启动功能。import 语句:开头会导入 launch 和 launch_ros 等包…

2026/7/4 14:34:05 阅读更多 →

最新新闻

STM32F410RB与MC6470 IMU的高精度姿态控制实现

STM32F410RB与MC6470 IMU的高精度姿态控制实现

1. 项目背景与硬件选型解析在嵌入式系统开发中,精确的运动感知和控制能力是许多应用的核心需求。MC6470作为mCube推出的6自由度惯性测量单元(6DOF IMU),集成了三轴加速度计和三轴磁力计,能够提供完整的空间姿态数据。而STM32F410RB则是STMicr…

2026/7/5 7:34:11 阅读更多 →
MAX9744与PIC18F2455构建高效D类音频放大器方案

MAX9744与PIC18F2455构建高效D类音频放大器方案

1. 项目背景与核心组件解析在DIY音频设备改造和嵌入式音频系统开发中,功率放大器的选型直接影响最终音质表现。MAX9744作为一款高效D类音频功率放大器,搭配PIC18F2455微控制器的灵活控制能力,可以构建出性能优异且可编程的音频放大解决方案。…

2026/7/5 7:34:11 阅读更多 →
STM32与DS28EC20 1-Wire EEPROM嵌入式存储方案实战

STM32与DS28EC20 1-Wire EEPROM嵌入式存储方案实战

1. 项目背景与核心需求 在嵌入式系统开发中,持久化存储用户配置和偏好设置是一个经典需求。无论是工业控制设备、消费电子产品还是物联网终端,都需要在断电后仍能保留关键参数。传统方案如EEPROM或Flash存储各有局限——前者容量小、成本高,后…

2026/7/5 7:34:11 阅读更多 →
AppScan 10.0.1 安装部署全攻略:从证书导入到环境修复的避坑指南

AppScan 10.0.1 安装部署全攻略:从证书导入到环境修复的避坑指南

1. 项目概述:为什么AppScan的安装值得你认真对待如果你是一名安全工程师、渗透测试人员,或者正在负责公司应用系统的安全评估,那么IBM Security AppScan这个名字你一定不陌生。作为一款老牌且功能强大的Web应用动态安全测试(DAST&…

2026/7/5 7:32:10 阅读更多 →
STM32L152RE与25CSM04 EEPROM的高速数据检索优化方案

STM32L152RE与25CSM04 EEPROM的高速数据检索优化方案

1. 项目背景与核心需求在嵌入式系统开发中,数据检索的速度和精度往往成为系统性能的瓶颈。传统方案通常面临两个矛盾:要么使用低速但容量大的存储介质(如SD卡),要么选择高速但容量受限的片上Flash。25CSM04这款4Mb SPI…

2026/7/5 7:30:10 阅读更多 →
WindowsCleaner:彻底解决C盘爆红的终极清理工具,快速释放磁盘空间

WindowsCleaner:彻底解决C盘爆红的终极清理工具,快速释放磁盘空间

WindowsCleaner:彻底解决C盘爆红的终极清理工具,快速释放磁盘空间 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 你是否经常遇到Windows电…

2026/7/5 7:30:10 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻