/** * Moonshot 子类 —— Moonshot 的对话补全 API 与 OpenAI Chat Completions 兼容, * 差异仅在默认 baseUrl。故继承 OpenAIProvider,只覆写 defaultBaseUrl(); * chat 与 messageToValue 直接复用父类(同 OpenAI 帧形态)。不复制流式/重试/trace。 * * 文件名 `llm.moonshot.js` 即注册键 `moonshot`。 */ import OpenAIProvider from './llm.openai.js' export default class MoonshotProvider extends OpenAIProvider { /** @returns {string} */ defaultBaseUrl() { return 'https://api.moonshot.cn/v1' } /** * Moonshot 支持 json_object(response_format.type='json_object',与 OpenAI 同形,原样透传), * 不支持 json_schema。故分派表只声明 json_object;json_schema 由 base 统一 badRequest。 * @protected * @returns {Record, headers:Record, rf:{schema?:object, name?:string}) => void>} */ responseFormatHandlers() { return { json_object: (body) => { body.response_format = { type: 'json_object' } }, } } }