Files
algorithm/sdk/javascript
2026-02-08 14:42:58 +08:00
..
2026-02-08 14:42:58 +08:00
2026-02-08 14:42:58 +08:00
2026-02-08 14:42:58 +08:00

智能算法展示平台JavaScript SDK

本SDK提供了与智能算法展示平台API交互的JavaScript客户端支持算法调用、仿真数据生成等功能。

安装

从源码安装

cd sdk/javascript
npm install
npm link

从npm安装

npm install algorithm-showcase-sdk

使用示例

1. 初始化客户端

const AlgorithmShowcaseClient = require('algorithm-showcase-sdk');

// 初始化客户端
const client = new AlgorithmShowcaseClient(
  'http://localhost:8000/api/v1',  // API基础URL
  'your-api-key'  // 可选API密钥
);

2. 获取算法列表

// 获取所有算法
async function getAlgorithms() {
  try {
    const algorithms = await client.getAlgorithms();
    
    // 打印算法信息
    algorithms.forEach(algo => {
      console.log(`算法ID: ${algo.id}`);
      console.log(`算法名称: ${algo.name}`);
      console.log(`算法描述: ${algo.description}`);
      console.log(`算法类型: ${algo.type}`);
      console.log('---');
    });
  } catch (error) {
    console.error('获取算法列表失败:', error.message);
  }
}

// 获取特定类型的算法
async function getAlgorithmsByType() {
  try {
    const algorithms = await client.getAlgorithms('computer_vision');
    console.log('计算机视觉算法:', algorithms);
  } catch (error) {
    console.error('获取算法列表失败:', error.message);
  }
}

getAlgorithms();

3. 获取算法详情

// 获取算法详情
async function getAlgorithmDetail() {
  try {
    const algorithm = await client.getAlgorithm('algorithm-123456');
    
    console.log(`算法ID: ${algorithm.id}`);
    console.log(`算法名称: ${algorithm.name}`);
    console.log(`算法描述: ${algorithm.description}`);
    console.log(`算法类型: ${algorithm.type}`);
    console.log('版本信息:');
    algorithm.versions.forEach(version => {
      console.log(`  - 版本: ${version.version} (默认: ${version.is_default})`);
      console.log(`    URL: ${version.url}`);
      console.log(`    参数: ${JSON.stringify(version.params)}`);
    });
  } catch (error) {
    console.error('获取算法详情失败:', error.message);
  }
}

getAlgorithmDetail();

4. 调用算法

// 调用算法
async function callAlgorithm() {
  try {
    // 准备输入数据
    const inputData = {
      text: '这是一段测试文本'
    };
    
    // 准备算法参数
    const params = {
      confidence_threshold: 0.5,
      model_name: 'resnet50'
    };
    
    // 调用算法
    const result = await client.callAlgorithm(
      'algorithm-123456',
      'version-123456',
      inputData,
      params
    );
    
    console.log(`调用ID: ${result.id}`);
    console.log(`状态: ${result.status}`);
    console.log(`响应时间: ${result.response_time} 秒`);
    console.log(`输出数据: ${JSON.stringify(result.output_data)}`);
  } catch (error) {
    console.error('调用算法失败:', error.message);
  }
}

callAlgorithm();

5. 获取调用结果

// 获取调用结果
async function getCallResult() {
  try {
    const result = await client.getCallResult('call-123456');
    
    console.log(`调用ID: ${result.id}`);
    console.log(`状态: ${result.status}`);
    console.log(`响应时间: ${result.response_time} 秒`);
    console.log(`输出数据: ${JSON.stringify(result.output_data)}`);
  } catch (error) {
    console.error('获取调用结果失败:', error.message);
  }
}

getCallResult();

6. 生成仿真输入数据

// 生成仿真输入数据
async function generateSimulationData() {
  try {
    // 生成文本数据
    const textData = await client.generateSimulationData(
      '生成一段关于人工智能的新闻文本',
      'text'
    );
    console.log('生成的文本:', textData.data);
    
    // 生成结构化数据
    const structuredData = await client.generateSimulationData(
      '生成一个包含姓名、年龄、职业的用户信息',
      'structured'
    );
    console.log('生成的结构化数据:', structuredData.data);
  } catch (error) {
    console.error('生成仿真数据失败:', error.message);
  }
}

generateSimulationData();

API文档

核心方法

  • getAlgorithms(type): 获取算法列表
  • getAlgorithm(algorithmId): 获取算法详情
  • getAlgorithmVersions(algorithmId): 获取算法版本列表
  • callAlgorithm(algorithmId, versionId, inputData, params): 调用算法
  • getCallResult(callId): 获取调用结果
  • generateSimulationData(prompt, dataType): 生成仿真输入数据

错误处理

SDK会捕获API请求中的错误并抛出异常。建议在使用时添加异常处理

try {
  const result = await client.callAlgorithm(...);
  console.log('调用成功:', result);
} catch (error) {
  console.error('调用失败:', error.message);
}

版本兼容性

  • Node.js 12+
  • axios 1.6.0+

浏览器兼容性

本SDK基于axios支持现代浏览器。在浏览器环境中使用时需要注意跨域问题。

许可证

MIT License