生成阶段总结API文档

本文档描述了如何使用生成阶段总结API调用AI生成会员的阶段训练总结。

API概述

生成阶段总结API提供了调用AI生成会员阶段训练总结的功能,可以用于教练或会员在阶段结束后自动生成训练效果的总结报告。

接口详情

生成阶段总结

POST /gym/member/generate_stage_summary

调用AI生成指定阶段的总结内容。

请求参数

参数名 类型 必填 描述
stage_id Integer 阶段ID

响应格式

API返回JSON格式的数据,包含以下字段:

{
    "error": 0,                      // 错误码,0表示成功,非0表示失败
    "message": "阶段总结生成请求已提交,请在2分钟后查看报告", // 响应消息
    "stage_id": 123                  // 阶段ID
}

错误码说明

错误码 描述
0 成功
400 请求参数错误,如缺少必要参数或评估记录不足
404 未找到指定阶段
500 服务器内部错误

示例请求

POST /gym/member/generate_stage_summary
Content-Type: application/x-www-form-urlencoded

stage_id=123

使用说明

调用此API后,系统会异步生成阶段总结,这个过程通常需要1-2分钟。生成完成后,可以通过阶段报告API获取生成的总结内容。

注意:要使用此API,阶段必须至少有2条体适能评估记录,否则将返回错误。

使用示例

JavaScript示例

// 使用fetch API生成阶段总结
const generateStageSummary = async (stageId) => {
    try {
        const formData = new FormData();
        formData.append('stage_id', stageId);
        
        const response = await fetch('/gym/member/generate_stage_summary', {
            method: 'POST',
            body: formData,
            headers: {
                'Authorization': 'Bearer ' + accessToken
            }
        });
        
        const data = await response.json();
        
        if (data.error === 0) {
            console.log('阶段总结生成请求已提交:', data.message);
            return data;
        } else {
            console.error('生成失败:', data.message);
            throw new Error(data.message);
        }
    } catch (error) {
        console.error('请求出错:', error);
        throw error;
    }
};

// 调用示例
generateStageSummary(123)
    .then(data => {
        // 处理成功响应
        console.log('请在2分钟后查看报告');
        // 2分钟后获取阶段报告
        setTimeout(() => {
            // 这里可以调用获取阶段报告的API
            console.log('现在可以获取阶段报告了');
        }, 120000); // 2分钟
    })
    .catch(error => {
        // 处理错误
        console.error('生成阶段总结失败:', error);
    });

使用JSON格式发送请求

// 使用fetch API发送JSON格式请求
const generateStageSummaryJson = async (stageId) => {
    try {
        const response = await fetch('/gym/member/generate_stage_summary', {
            method: 'POST',
            body: JSON.stringify({
                stage_id: stageId
            }),
            headers: {
                'Content-Type': 'application/json',
                'Authorization': 'Bearer ' + accessToken
            }
        });
        
        const data = await response.json();
        
        if (data.error === 0) {
            console.log('阶段总结生成请求已提交:', data.message);
            return data;
        } else {
            console.error('生成失败:', data.message);
            throw new Error(data.message);
        }
    } catch (error) {
        console.error('请求出错:', error);
        throw error;
    }
};

Python示例

import requests
import time

def generate_stage_summary(stage_id, access_token):
    """
    生成阶段总结
    
    Args:
        stage_id: 阶段ID
        access_token: 访问令牌
    
    Returns:
        生成结果
    """
    url = 'http://your-domain.com/gym/member/generate_stage_summary'
    
    headers = {
        'Authorization': f'Bearer {access_token}'
    }
    
    data = {
        'stage_id': stage_id
    }
    
    response = requests.post(url, data=data, headers=headers)
    
    if response.status_code == 200:
        result = response.json()
        if result['error'] == 0:
            print(f"阶段总结生成请求已提交: {result['message']}")
            return result
        else:
            print(f"生成失败: {result['message']}")
            raise Exception(result['message'])
    else:
        print(f"请求失败,状态码: {response.status_code}")
        raise Exception(f"请求失败,状态码: {response.status_code}")

# 调用示例
try:
    result = generate_stage_summary(
        stage_id=123,
        access_token='your-access-token'
    )
    print("请在2分钟后查看报告")
    # 等待2分钟
    time.sleep(120)
    # 这里可以调用获取阶段报告的API
    print("现在可以获取阶段报告了")
except Exception as e:
    print(f"生成阶段总结失败: {str(e)}")