llm.wanjie.js 880 Bytes
import OpenAIProvider from './llm.openai.js'

export default class WanjieProvider extends OpenAIProvider {
  defaultBaseUrl() {
    return 'https://maas-openapi.wanjiedata.com/api/v1'
  }

  httpErrorInfo(_res, body, _reason) {
    const response = requiredObject(body, 'response')
    const error = requiredObject(response.error, 'error')
    return {
      message: requiredString(error.message, 'error.message'),
      provider_request_id: requiredString(response.request_id, 'request_id'),
    }
  }
}

function requiredObject(value, field) {
  if (!value || Object.getPrototypeOf(value) !== Object.prototype) {
    throw new Error(`[wanjie] ${field} 必须是 object`)
  }
  return value
}

function requiredString(value, field) {
  if (typeof value !== 'string' || value.length === 0) {
    throw new Error(`[wanjie] ${field} 必须是非空字符串`)
  }
  return value
}