llm.moonshot.js
1.06 KB
/**
* 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<string, (body:Record<string,any>, headers:Record<string,string>, rf:{schema?:object, name?:string}) => void>}
*/
responseFormatHandlers() {
return {
json_object: (body) => {
body.response_format = { type: 'json_object' }
},
}
}
}