@cloudbase/js-sdk 3.4.7-beta.0 → 3.4.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3 -0
- package/ai/dist/index.esm.js +1 -1
- package/ai/dist/index.esm.js.map +1 -1
- package/apis/dist/index.esm.js +1 -1
- package/apis/dist/index.esm.js.map +1 -1
- package/app/dist/index.esm.js +1 -1
- package/app/dist/index.esm.js.map +1 -1
- package/auth/dist/index.esm.js +1 -1
- package/auth/dist/index.esm.js.map +1 -1
- package/auth/dist/index.js +1 -1
- package/auth/dist/index.js.map +1 -1
- package/cloudrun/dist/index.esm.js +1 -1
- package/cloudrun/dist/index.esm.js.map +1 -1
- package/container/dist/index.esm.js +1 -1
- package/container/dist/index.esm.js.map +1 -1
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.esm.js.map +1 -1
- package/functions/dist/index.esm.js +1 -1
- package/functions/dist/index.esm.js.map +1 -1
- package/miniprogram_dist/auth.js +1 -1
- package/miniprogram_dist/index.js +1 -1
- package/model/dist/index.esm.js +1 -1
- package/model/dist/index.esm.js.map +1 -1
- package/mysql/dist/index.esm.js +1 -1
- package/mysql/dist/index.esm.js.map +1 -1
- package/oauth/dist/index.esm.js +1 -1
- package/oauth/dist/index.esm.js.map +1 -1
- package/package.json +1 -1
- package/realtime/dist/index.esm.js +1 -1
- package/realtime/dist/index.esm.js.map +1 -1
- package/storage/dist/index.esm.js +1 -1
- package/storage/dist/index.esm.js.map +1 -1
- package/types/package.json +1 -1
- package/utilities/package.json +2 -2
package/ai/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","mappings":"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","sources":["webpack://@cloudbase/js-sdk/AI.ts","webpack://@cloudbase/js-sdk/index.ts","webpack://@cloudbase/js-sdk/parse.ts","webpack://@cloudbase/js-sdk/util.ts","webpack://@cloudbase/js-sdk/image-model.ts","webpack://@cloudbase/js-sdk/model.ts","webpack://@cloudbase/js-sdk/type.ts","webpack://@cloudbase/js-sdk/utils.ts","webpack://@cloudbase/js-sdk/web.ts","webpack://@cloudbase/js-sdk/common.ts","webpack://@cloudbase/js-sdk/errors.ts","webpack://@cloudbase/js-sdk/decorators.ts","webpack://@cloudbase/js-sdk/abortController.ts","webpack://@cloudbase/js-sdk/cache.ts","webpack://@cloudbase/js-sdk/events.ts","webpack://@cloudbase/js-sdk/langEvent.ts","webpack://@cloudbase/js-sdk/external module \"@cloudbase/adapter-interface\"","webpack://@cloudbase/js-sdk/external module \"@mattiasbuelens/web-streams-adapter\"","webpack://@cloudbase/js-sdk/external module \"jwt-decode\"","webpack://@cloudbase/js-sdk/external module \"text-encoding-shim\"","webpack://@cloudbase/js-sdk/external module \"web-streams-polyfill\"","webpack://@cloudbase/js-sdk/webpack/bootstrap","webpack://@cloudbase/js-sdk/webpack/startup"],"sourcesContent":["/* eslint-disable eqeqeq */\n/* eslint-disable @typescript-eslint/naming-convention */\nimport type { SDKRequestInterface } from '@cloudbase/adapter-interface'\nimport { Bot } from './bot'\nimport * as models from './models'\nimport * as types from './type'\nimport { readableStream2JsonObject } from './utils'\nimport { ICloudbaseConfig } from '@cloudbase/types'\nimport { langEvent } from '@cloudbase/utilities'\n\nconst { MODELS } = models\n\nclass AI {\n public aiBaseUrl: string\n public aiBotBaseUrl: string\n public bot: Bot\n public i18n: ICloudbaseConfig['i18n']\n defaultHeaders: { [x: string]: any }\n\n constructor(\n private req: SDKRequestInterface,\n public baseUrl: string,\n i18n: ICloudbaseConfig['i18n'],\n ) {\n this.aiBaseUrl = `${baseUrl}/ai`\n this.aiBotBaseUrl = `${baseUrl}/aibot`\n this.bot = new Bot(this.botRequest, this.aiBotBaseUrl)\n this.i18n = i18n\n\n langEvent.bus.on(langEvent.LANG_CHANGE_EVENT, (params) => {\n this.i18n = params.data?.i18n || this.i18n\n })\n }\n\n async handleResponseData(responseData: Promise<unknown> | ReadableStream<Uint8Array>, header?: Headers) {\n const GO_TO_AI_TEXT = `${this.i18n.t('请检查调用方式,或前往云开发 AI+ 首页查看文档')}:https://tcb.cloud.tencent.com/dev#/ai`\n\n if (typeof responseData === 'object' && responseData && 'then' in responseData) {\n // 非流式请求,直接返回 json 数据\n const json = (await responseData) as Record<string, unknown>\n if (typeof json === 'object' && json && 'code' in json && json.code !== 'NORMAL') {\n throw new Error(`${this.i18n.t('AI+ 请求出错,错误码')}:${json.code},${this.i18n.t('错误信息')}:${\n json.message\n }\\n${GO_TO_AI_TEXT}\\n${JSON.stringify(json, null, 2)}`,)\n }\n\n return responseData\n }\n // 流式请求,如果接口出错,会变成传 json 格式的响应,通过 header 判断格式\n if (header?.get?.('content-type')?.includes('application/json')) {\n const json = await readableStream2JsonObject(responseData as ReadableStream<Uint8Array>)\n if (typeof json === 'object' && json && 'code' in json && json.code !== 'NORMAL') {\n throw new Error(`${this.i18n.t('AI+ 请求出错,错误码')}:${json.code},${this.i18n.t('错误信息')}:${\n json.message\n }\\n${GO_TO_AI_TEXT}\\n${JSON.stringify(json, null, 2)}`,)\n }\n }\n return responseData\n }\n\n createModel(\n model: string,\n options?: {\n defaultModelSubUrl?: string\n },\n ) {\n let simpleModel: types.SimpleChatModel\n\n const SimpleModelConstructor = MODELS[model]\n if (SimpleModelConstructor) {\n simpleModel = new SimpleModelConstructor(this.modelRequest, this.aiBaseUrl)\n } else {\n const subUrl = typeof options?.defaultModelSubUrl === 'string' ? options.defaultModelSubUrl : '/chat/completions'\n\n simpleModel = new models.DefaultSimpleModel(this.modelRequest, this.aiBaseUrl, `${model}${subUrl}`)\n }\n\n const reactModel = new models.ReactModel(simpleModel)\n return reactModel\n }\n\n registerModel(name: string, model: types.ChatModelConstructor) {\n if (MODELS[name] != null) {\n console.warn(`AI model ${name} already exists!`)\n return\n }\n MODELS[name] = model\n }\n\n createImageModel<T extends 'hunyuan-image' | (string & {})>(provider: T) {\n return new models.DefaultImageModel<T>(this.modelRequest, this.aiBaseUrl, provider)\n }\n\n modelRequest: types.ModelReq = async ({ url, data, headers, stream, timeout }) => {\n const fetchHeaders = {\n 'Content-Type': 'application/json',\n }\n // 带 Accept: text/event-stream 请求头显式指定是 SSE 绕过 60s 的限制\n stream && Object.assign(fetchHeaders, { Accept: 'text/event-stream' })\n\n const { data: responseData, header } = (await this.req.fetch({\n method: 'post',\n headers: { [this.i18n?.LANG_HEADER_KEY]: this.i18n?.lang, ...fetchHeaders, ...headers },\n body: JSON.stringify(data),\n url,\n stream,\n timeout,\n })) as { data: Promise<unknown> | ReadableStream<Uint8Array>; header?: Headers }\n\n return this.handleResponseData(responseData, header) as any\n }\n\n botRequest: types.BotReq = async ({ method, url, data = {}, headers, stream, timeout }) => {\n if (method === 'get') {\n return this.handleResponseData((await this.req.fetch({ url: `${url}?${objectToParam(data)}`, method, headers, stream, timeout })).data,)\n }\n\n const fetchHeaders = {\n 'Content-Type': 'application/json',\n }\n // 带 Accept: text/event-stream 请求头显式指定是 SSE 绕过 60s 的限制\n stream && Object.assign(fetchHeaders, { Accept: 'text/event-stream' })\n\n const { data: responseData, header } = (await this.req.fetch({\n url,\n body: JSON.stringify(data),\n headers: {\n [this.i18n?.LANG_HEADER_KEY]: this.i18n?.lang,\n ...fetchHeaders,\n ...headers,\n },\n stream,\n method,\n timeout,\n })) as { data: Promise<unknown> | ReadableStream<Uint8Array>; header?: Headers }\n\n return this.handleResponseData(responseData, header) as any\n\n function objectToParam(obj: Object) {\n return Object.entries(obj)\n .map(([key, value]) => `${key}=${value}`)\n .join('&')\n }\n }\n\n registerFunctionTool(functionTool: types.FunctionTool) {\n if (models.toolMap.has(functionTool.name)) {\n console.warn(`AI function tool ${functionTool.name} already exists and will be overwritten!`)\n }\n models.toolMap.set(functionTool.name, functionTool.fn)\n }\n}\n\nexport { AI }\n","import { type ParsedEvent } from '../eventsource_parser'\nimport { BotReq, ReqOptions } from '../type'\nimport {\n IBotCreateConversation,\n IBotDeleteConversation,\n IBotGetConversation,\n IBotGetTextToSpeechResult,\n IBotPreview,\n IBotSendMessage,\n IBotSpeechToText,\n IBotTextToSpeech,\n IBotUploadFiles,\n ICreateBot,\n IDeleteBot,\n IGenerateBot,\n IGenerateImage,\n IGetBot,\n IGetBotChatRecords,\n IGetBotFeedback,\n IGetBotList,\n IGetBotRecommendQuestions,\n ISendBotFeedback,\n IUpdateBot,\n} from './types'\nimport {\n createAsyncIterable,\n toPolyfillReadable,\n createEventSourceParserTransformStream,\n TextDecoderStream,\n TransformStream,\n} from '../utils'\n\nexport class Bot {\n req: BotReq\n\n constructor(req: BotReq, public baseUrl: string) {\n // eslint-disable-next-line prefer-rest-params\n const token = arguments[2]\n if (typeof token === 'string') {\n this.req = ({ headers = {}, ...rest }) => req({ ...rest, headers: { ...headers, Authorization: `Bearer ${token}` } })\n } else {\n this.req = req\n }\n }\n\n list(props: IGetBotList, options?: ReqOptions) {\n return this.req({\n method: 'get',\n url: this.join('bots'),\n data: props,\n timeout: options?.timeout,\n })\n }\n\n create({ botInfo }: ICreateBot, options?: ReqOptions) {\n return this.req({\n method: 'post',\n url: this.join('bots'),\n data: botInfo,\n timeout: options?.timeout,\n })\n }\n\n get({ botId }: IGetBot, options?: ReqOptions) {\n return this.req({\n method: 'get',\n url: this.join(`bots/${botId}`),\n timeout: options?.timeout,\n })\n }\n\n update({ botId, botInfo }: IUpdateBot, options?: ReqOptions) {\n return this.req({\n method: 'PATCH',\n url: this.join(`bots/${botId}`),\n data: botInfo,\n timeout: options?.timeout,\n })\n }\n\n delete({ botId }: IDeleteBot, options?: ReqOptions) {\n return this.req({ method: 'delete', url: this.join(`bots/${botId}`), timeout: options?.timeout })\n }\n\n getChatRecords(props: IGetBotChatRecords, options?: ReqOptions) {\n return this.req({\n method: 'get',\n url: this.join(`bots/${props.botId}/records`),\n data: props,\n timeout: options?.timeout,\n })\n }\n\n sendFeedback({ userFeedback }: ISendBotFeedback, options?: ReqOptions) {\n return this.req({\n method: 'post',\n url: this.join(`bots/${userFeedback.botId}/feedback`),\n data: userFeedback,\n timeout: options?.timeout,\n })\n }\n\n getFeedback(props: IGetBotFeedback, options?: ReqOptions) {\n return this.req({\n method: 'get',\n url: this.join(`bots/${props.botId}/feedback`),\n data: props,\n timeout: options?.timeout,\n })\n }\n\n async uploadFiles(props: IBotUploadFiles, options?: ReqOptions) {\n return this.req({\n method: 'post',\n url: this.join(`bots/${props.botId}/files`),\n data: props,\n timeout: options?.timeout,\n })\n }\n\n async createConversation({ botId, ...rest }: IBotCreateConversation, options?: ReqOptions) {\n return this.req({\n method: 'post',\n url: this.join(`bots/${botId}/conversation`),\n data: rest,\n timeout: options?.timeout,\n })\n }\n\n async getConversation({ pageSize = 10, pageNumber = 1, botId, ...rest }: IBotGetConversation, options?: ReqOptions) {\n if (pageNumber < 1) throw new Error('pageNumber must be greater than 0')\n const offset = pageSize * (pageNumber - 1)\n const limit = pageSize\n return this.req({\n method: 'get',\n url: this.join(`bots/${botId}/conversation`),\n data: { ...rest, offset, limit },\n timeout: options?.timeout,\n })\n }\n\n async deleteConversation({ botId, conversationId, ...rest }: IBotDeleteConversation, options?: ReqOptions) {\n return this.req({\n method: 'delete',\n url: this.join(`bots/${botId}/conversation/${conversationId}`),\n data: rest,\n timeout: options?.timeout,\n })\n }\n\n async speechToText(props: IBotSpeechToText, options?: ReqOptions) {\n return this.req({\n method: 'post',\n url: this.join(`bots/${props.botId}/speech-to-text`),\n data: props,\n timeout: options?.timeout,\n })\n }\n\n async textToSpeech(props: IBotTextToSpeech, options?: ReqOptions) {\n return this.req({\n method: 'post',\n url: this.join(`bots/${props.botId}/text-to-speech`),\n data: props,\n timeout: options?.timeout,\n })\n }\n\n async getTextToSpeechResult(props: IBotGetTextToSpeechResult, options?: ReqOptions) {\n return this.req({\n method: 'get',\n url: this.join(`bots/${props.botId}/text-to-speech`),\n data: props,\n timeout: options?.timeout,\n })\n }\n\n async getRecommendQuestions(props: IGetBotRecommendQuestions, options?: ReqOptions) {\n const res = await this.req({\n method: 'post',\n url: this.join(`bots/${props.botId}/recommend-questions`),\n data: props,\n stream: true,\n timeout: options?.timeout,\n })\n return new StreamResult(res)\n }\n\n async generateBot(props: IGenerateBot, options?: ReqOptions) {\n const res = await this.req({\n method: 'post',\n url: this.join('generate-bot'),\n data: props,\n stream: true,\n timeout: options?.timeout,\n })\n return new StreamResult(res)\n }\n\n async getPreview(props: IBotPreview, options?: ReqOptions) {\n const res = await this.req({\n method: 'post',\n url: this.join('preview'),\n data: props,\n stream: true,\n timeout: options?.timeout,\n })\n return new StreamResult(res)\n }\n\n generateImage(props: IGenerateImage, options?: ReqOptions) {\n return this.req({ method: 'post', url: this.join('generate-image'), data: props, timeout: options?.timeout })\n }\n\n async sendMessage(props: IBotSendMessage, options?: ReqOptions) {\n const res = await this.req({\n method: 'post',\n url: this.join(`bots/${props.botId}/send-message`),\n data: props,\n stream: true,\n timeout: options?.timeout,\n })\n return new StreamResult(res)\n }\n\n private join(url: string) {\n return `${this.baseUrl}/${url}`\n }\n}\n\ntype BotEventStreamData = { content: string }\n\nclass StreamResult {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n private _eventSourceStream: ReadableStream<ParsedEvent>\n\n constructor(_stream: ReadableStream<Uint8Array>) {\n const stream = toPolyfillReadable(_stream) as typeof _stream\n this._eventSourceStream = stream\n .pipeThrough(new TextDecoderStream())\n .pipeThrough(createEventSourceParserTransformStream())\n }\n\n private get teeedStream() {\n const [s1, s2] = this._eventSourceStream.tee()\n this._eventSourceStream = s2\n return s1\n }\n\n get eventSourceStream() {\n return createAsyncIterable(this.teeedStream)\n }\n\n get dataStream() {\n return createAsyncIterable(this.eventSourceStream.pipeThrough(new TransformStream<ParsedEvent, BotEventStreamData>({\n transform(chunk, controller) {\n try {\n const data = JSON.parse(chunk.data)\n controller.enqueue(data)\n } catch (e) {\n if (chunk.data !== '[DONE]') {\n console.warn('Error when transforming event source data to json', e, chunk)\n } else {\n controller.terminate()\n }\n }\n },\n }),),)\n }\n\n get textStream() {\n return createAsyncIterable(this.dataStream.pipeThrough(new TransformStream<BotEventStreamData, string>({\n transform(chunk, controller) {\n controller.enqueue(chunk?.content ?? '')\n },\n }),),)\n }\n}\n","/**\n * EventSource/Server-Sent Events parser\n * @see https://html.spec.whatwg.org/multipage/server-sent-events.html\n *\n * Based on code from the {@link https://github.com/EventSource/eventsource | EventSource module},\n * which is licensed under the MIT license. And copyrighted the EventSource GitHub organisation.\n */\nimport type { EventSourceParseCallback, EventSourceParser } from './types'\n\n/**\n * Creates a new EventSource parser.\n *\n * @param onParse - Callback to invoke when a new event is parsed, or a new reconnection interval\n * has been sent from the server\n *\n * @returns A new EventSource parser, with `parse` and `reset` methods.\n * @public\n */\nexport function createParser(onParse: EventSourceParseCallback): EventSourceParser {\n // Processing state\n let isFirstChunk: boolean\n let buffer: string\n let startingPosition: number\n let startingFieldLength: number\n\n // Event state\n let eventId: string | undefined\n let eventName: string | undefined\n let data: string\n\n reset()\n return { feed, reset }\n\n function reset(): void {\n isFirstChunk = true\n buffer = ''\n startingPosition = 0\n startingFieldLength = -1\n\n eventId = undefined\n eventName = undefined\n data = ''\n }\n\n function feed(chunk: string): void {\n buffer = buffer ? buffer + chunk : chunk\n\n // Strip any UTF8 byte order mark (BOM) at the start of the stream.\n // Note that we do not strip any non - UTF8 BOM, as eventsource streams are\n // always decoded as UTF8 as per the specification.\n if (isFirstChunk && hasBom(buffer)) {\n buffer = buffer.slice(BOM.length)\n }\n\n isFirstChunk = false\n\n // Set up chunk-specific processing state\n const { length } = buffer\n let position = 0\n let discardTrailingNewline = false\n\n // Read the current buffer byte by byte\n while (position < length) {\n // EventSource allows for carriage return + line feed, which means we\n // need to ignore a linefeed character if the previous character was a\n // carriage return\n // @todo refactor to reduce nesting, consider checking previous byte?\n // @todo but consider multiple chunks etc\n if (discardTrailingNewline) {\n if (buffer[position] === '\\n') {\n position += 1\n }\n discardTrailingNewline = false\n }\n\n let lineLength = -1\n let fieldLength = startingFieldLength\n let character: string\n\n for (let index = startingPosition; lineLength < 0 && index < length; index++) {\n character = buffer[index]\n if (character === ':' && fieldLength < 0) {\n fieldLength = index - position\n } else if (character === '\\r') {\n discardTrailingNewline = true\n lineLength = index - position\n } else if (character === '\\n') {\n lineLength = index - position\n }\n }\n\n if (lineLength < 0) {\n startingPosition = length - position\n startingFieldLength = fieldLength\n break\n } else {\n startingPosition = 0\n startingFieldLength = -1\n }\n\n parseEventStreamLine(buffer, position, fieldLength, lineLength)\n\n position += lineLength + 1\n }\n\n if (position === length) {\n // If we consumed the entire buffer to read the event, reset the buffer\n buffer = ''\n } else if (position > 0) {\n // If there are bytes left to process, set the buffer to the unprocessed\n // portion of the buffer only\n buffer = buffer.slice(position)\n }\n }\n\n function parseEventStreamLine(lineBuffer: string, index: number, fieldLength: number, lineLength: number) {\n if (lineLength === 0) {\n // We reached the last line of this event\n if (data.length > 0) {\n onParse({\n type: 'event',\n id: eventId,\n event: eventName || undefined,\n data: data.slice(0, -1), // remove trailing newline\n })\n\n data = ''\n eventId = undefined\n }\n eventName = undefined\n return\n }\n\n const noValue = fieldLength < 0\n const field = lineBuffer.slice(index, index + (noValue ? lineLength : fieldLength))\n let step = 0\n\n if (noValue) {\n step = lineLength\n } else if (lineBuffer[index + fieldLength + 1] === ' ') {\n step = fieldLength + 2\n } else {\n step = fieldLength + 1\n }\n\n const position = index + step\n const valueLength = lineLength - step\n const value = lineBuffer.slice(position, position + valueLength).toString()\n\n if (field === 'data') {\n data += value ? `${value}\\n` : '\\n'\n } else if (field === 'event') {\n eventName = value\n } else if (field === 'id' && !value.includes('\\u0000')) {\n eventId = value\n } else if (field === 'retry') {\n const retry = parseInt(value, 10)\n if (!Number.isNaN(retry)) {\n onParse({ type: 'reconnect-interval', value: retry })\n }\n }\n }\n}\n\nconst BOM = [239, 187, 191]\n\nfunction hasBom(buffer: string) {\n return BOM.every((charCode: number, index: number) => buffer.charCodeAt(index) === charCode)\n}\n","/* eslint-disable eqeqeq */\n/* eslint-disable @typescript-eslint/naming-convention */\nimport { HunYuanInputData } from './type'\nimport { BaseChatModelInput } from '../../type'\n\n/**\n * 这里的 process 只是对不符合的 input 做 warning。\n * 实际上还是会如实传递。\n * 防止未来模型参数更新,SDK 没跟上而导致用户输入无法生效。\n */\nexport function processInput(input: BaseChatModelInput): HunYuanInputData {\n const { messages, model, temperature, tool_choice, tools, top_p } = input\n\n const handleTools = () => {\n if (!tools) return undefined\n tools.forEach((tool) => {\n if (tool.type !== 'function') console.warn('`type` in tool is not \\'function\\'', tool)\n })\n return tools as HunYuanInputData['tools']\n }\n\n const handleMessages = () => {\n messages.forEach((message) => {\n if ('tool_calls' in message) {\n message.tool_calls\n .filter(tool_call => tool_call.type !== 'function')\n .forEach(tool_call => console.warn('`type` in tool_call is not \\'function\\'', tool_call, message))\n }\n })\n return messages as HunYuanInputData['messages']\n }\n\n return {\n ...input,\n messages: handleMessages(),\n model,\n tools: handleTools(),\n top_p,\n tool_choice,\n temperature,\n }\n}\n\nexport function titleCaseToSnakeCase(obj: unknown) {\n if (typeof obj !== 'object' || obj == null) return obj // 如果不是对象或者是null,则直接返回\n\n if (Array.isArray(obj)) return obj.map(item => titleCaseToSnakeCase(item)) // 如果是数组,递归处理每个元素\n\n return Object.entries(obj).reduce((acc, [key, value]) => {\n const snakeCaseKey = toSnakeCase(key)\n\n acc[snakeCaseKey] = typeof value === 'object' ? titleCaseToSnakeCase(value) : value\n return acc\n }, {})\n\n function toSnakeCase(s: string) {\n const ret = s.replace(/[A-Z]/g, match => `_${match.toLowerCase()}`)\n return ret.charAt(0) === '_' ? ret.slice(1) : ret\n }\n}\n","import type {\n ModelReq,\n // ImageEditInput,\n HunyuanGenerateImageInput,\n HunyuanGenerateImageOutput,\n HunyuanARGenerateImageInput,\n HunyuanARGenerateImageOutput,\n // HunyuanEditImageInput,\n // HunyuanEditImageOutput,\n} from '../type'\n\ninterface HunyuanImageGenerateFn {\n (input: HunyuanARGenerateImageInput): Promise<HunyuanARGenerateImageOutput>\n (input: HunyuanGenerateImageInput): Promise<HunyuanGenerateImageOutput>\n}\n\ntype GenerateImageFn<TProvider> = TProvider extends 'hunyuan-image'\n ? HunyuanImageGenerateFn\n : (input: unknown) => Promise<unknown>\n\nexport class DefaultImageModel<TProvider extends string> {\n public defaultGenerateImageSubUrl = 'images/generations'\n\n public generateImageSubUrlConfig: Record<string, Record<string, string>> = {\n 'hunyuan-image': {\n 'hunyuan-image-v3.0-v1.0.4': 'images/ar/generations',\n 'hunyuan-image-v3.0-v1.0.1': 'images/ar/generations',\n },\n }\n\n /** 生成图片 */\n public generateImage: GenerateImageFn<TProvider>\n\n constructor(private req: ModelReq, public baseUrl: string, public provider: TProvider) {\n this.generateImage = this.generateImageImpl.bind(this) as GenerateImageFn<TProvider>\n }\n\n /** generateImage 的实际实现 */\n private async generateImageImpl(input: HunyuanARGenerateImageInput | HunyuanGenerateImageInput,): Promise<HunyuanARGenerateImageOutput | HunyuanGenerateImageOutput> {\n let subUrl = this.defaultGenerateImageSubUrl\n\n if (typeof input === 'object' && input && 'model' in input && typeof input.model === 'string') {\n const newSubUrl = this.generateImageSubUrlConfig[this.provider]?.[input.model]\n if (newSubUrl) subUrl = newSubUrl\n }\n\n const res = (await this.req({\n url: this.getGenerateUrl(subUrl),\n data: input,\n stream: false,\n })) as HunyuanARGenerateImageOutput | HunyuanGenerateImageOutput\n\n return res\n }\n\n private getGenerateUrl(subUrl: string) {\n return `${this.baseUrl}/${this.provider}/${subUrl}`\n }\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable eqeqeq */\nimport {\n createAsyncIterable,\n TransformStream,\n createPromise,\n isToolCallAssistantMessage,\n functionToolToModelTool,\n} from '../utils'\nimport {\n BaseChatModelInput,\n BaseDoStreamOutputChunk,\n DoStreamOutput,\n DoGenerateOutput,\n SimpleChatModel,\n ToolCall,\n ChatModelMessage,\n AsyncIterableReadableStream,\n Usage,\n ToolCallAssistantMessage,\n ModelTool,\n FunctionTool,\n ReqOptions,\n} from '../type'\n\ntype ReactModelInput = ReactProps &\nOmit<BaseChatModelInput, 'tools'> & {\n tools?: Array<ModelTool | FunctionTool>\n topP?: number\n toolChoice?: 'none' | 'auto' | 'custom'\n}\n\ninterface IOnStepFinish {\n messages: Array<ChatModelMessage>\n text?: string\n toolCall?: ToolCall\n toolResult?: unknown\n finishReason?: string\n stepUsage?: Usage\n totalUsage?: Usage\n}\n\ninterface ReactProps {\n maxSteps?: number\n onStepFinish?: (prop: IOnStepFinish) => unknown\n abortSignal?: AbortSignal // TODO: 实现 abortSignal\n}\n\nfunction processInput(obj: ReactModelInput): [ReactProps, BaseChatModelInput] {\n const { onStepFinish, abortSignal, maxSteps, topP, toolChoice, ...b } = obj\n\n if (maxSteps != null && maxSteps < 1) {\n throw new Error('`maxSteps` muse be greater than 0.')\n }\n\n return [\n { onStepFinish, abortSignal, maxSteps },\n {\n ...b,\n tools: b.tools?.map((tool) => {\n if ('fn' in tool) {\n return functionToolToModelTool(tool)\n }\n return tool\n }),\n top_p: topP != null ? topP : b.top_p,\n tool_choice: toolChoice != null ? toolChoice : b.tool_choice,\n },\n ]\n}\n\nexport class ReactModel {\n constructor(private model: SimpleChatModel) {}\n\n public async generateText(_input: ReactModelInput, options?: ReqOptions): Promise<{\n text: string\n messages: Array<ChatModelMessage>\n usage: Usage\n rawResponses: Array<unknown>\n error?: any\n }> {\n const rawResponses = []\n const totalUsage: Usage = { completion_tokens: 0, prompt_tokens: 0, total_tokens: 0 }\n\n const [{ onStepFinish, maxSteps = 10 }, input] = processInput(_input)\n\n const doGenerate = () => this.model.doGenerate(input, options) // 后续代码会直接对 input.messages 原地修改,这里一直用同一个对象就行\n let currentRes = await doGenerate()\n let currentStep = 1\n currentRes.rawResponse && rawResponses.push(currentRes.rawResponse)\n\n let toolCall: ToolCall | null = null\n\n // TODO: 一次对话有多个 tool call? 目前没有这种现象,暂时不处理\n while (currentStep < maxSteps && (toolCall = getToolCallFromGenerate(currentRes)) != null) {\n const stepUsage = createSolidUsage(currentRes.usage)\n addToUsage(totalUsage, stepUsage)\n\n // 当判断需要工具调用时\n try {\n const toolCallResult = await callTool(toolCall) // 调用\n\n const choice = currentRes.choices[0] // getToolCallFromGenerate 保证了 choice 肯定存在\n\n await onStepFinish?.({\n finishReason: choice.finish_reason,\n messages: input.messages.slice(),\n text: choice.message.content,\n toolCall,\n toolResult: toolCallResult,\n stepUsage,\n totalUsage: Object.assign({}, totalUsage),\n })\n\n pushNewMessages(input.messages, choice.message as ToolCallAssistantMessage, toolCallResult) // 用调用结果修改最新的消息\n\n currentRes = await doGenerate() // 循环对话\n currentRes.rawResponse && rawResponses.push(currentRes.rawResponse)\n currentStep += 1\n } catch (e) {\n return {\n text: '',\n messages: input.messages,\n usage: totalUsage,\n error: e,\n rawResponses,\n }\n }\n }\n\n const lastChoice = currentRes?.choices?.[0]\n const lastMessage = lastChoice?.message\n\n const text = lastMessage?.content ?? ''\n const messages = lastMessage ? [...input.messages, lastMessage] : input.messages\n\n const stepUsage = createSolidUsage(currentRes.usage)\n addToUsage(totalUsage, stepUsage)\n\n await onStepFinish?.({\n finishReason: lastChoice.finish_reason,\n messages: messages.slice(),\n text,\n toolCall: getToolCallFromGenerate(currentRes),\n toolResult: null,\n stepUsage,\n totalUsage: Object.assign({}, totalUsage),\n })\n\n return {\n text,\n messages,\n usage: totalUsage,\n rawResponses,\n }\n }\n\n public async streamText(_input: ReactModelInput, options?: ReqOptions): Promise<{\n dataStream: DoStreamOutput\n textStream: AsyncIterableReadableStream<string>\n messages: Promise<Array<ChatModelMessage>>\n usage: Promise<Usage>\n error?: any\n }> {\n const totalUsage: Usage = { completion_tokens: 0, prompt_tokens: 0, total_tokens: 0 }\n\n const [{ onStepFinish, maxSteps = 10 }, input] = processInput(_input)\n const doStream = () => this.model.doStream(input, options) // 后续代码会直接对 input.messages 原地修改,这里一直用同一个对象就行\n let currentRes = await doStream()\n const currentStep = 1\n let readResult: { message: ToolCallAssistantMessage; usage: Usage } | null = null\n\n const readCurrentStream = () => {\n const [oldStream, newStream] = currentRes.tee()\n currentRes = createAsyncIterable(oldStream)\n return readFunctionCallStream(newStream)\n }\n\n // TODO: 一次对话有多个 tool call? 目前没有这种现象,暂时不处理\n // 这里和 generateText 不太一样,除了解析出 toolCall 外,还需要从流中构造出其他完整的信息\n while (currentStep < maxSteps && (readResult = await readCurrentStream()) != null) {\n const { message: assistantMessage, usage: stepUsage } = readResult\n addToUsage(totalUsage, stepUsage)\n\n // 当判断需要工具调用时\n const toolCall = assistantMessage.tool_calls?.[0] // 这个 toolCall 一定存在\n try {\n const toolCallResult = await callTool(toolCall) // 调用\n\n await onStepFinish?.({\n finishReason: 'tool_calls',\n messages: input.messages.slice(),\n text: assistantMessage.content,\n toolCall,\n toolResult: toolCallResult,\n stepUsage,\n totalUsage: Object.assign({}, totalUsage),\n })\n\n pushNewMessages(input.messages, assistantMessage, toolCallResult) // 用调用结果修改最新的消息\n currentRes = await doStream() // 循环对话\n } catch (e) {\n const [s1, s2] = currentRes.tee()\n return {\n messages: Promise.resolve(input.messages),\n dataStream: createAsyncIterable(s1),\n textStream: createAsyncIterable(s2.pipeThrough(new TransformStream({\n transform(chunk, controller) {\n const str = chunk?.choices?.[0]?.delta?.content\n if (typeof str === 'string') controller.enqueue(str)\n },\n }),),),\n usage: Promise.resolve(totalUsage),\n error: e,\n }\n }\n }\n\n /**\n * 最后返回时,有几种情况:\n * 1. 没超 maxStep 无工具调用\n * 2. 超了 maxStep 有工具调用\n * 3. 超了 maxStep 无工具调用\n * never. 没超 maxStep,有工具调用,这时候会进到上面的 while 循环 block 中处理\n *\n * 其中 1. 3. 可以合并,没有工具调用就应该直接返回,无论 maxStep\n *\n * 所以合并为:\n * 1. 无工具调用\n * 2. 有工具调用,但是超过 maxStep\n *\n * 这两种情况都没进到 while 循环 block 中处理\n * 我们需要 a. 塞 message b. 算 Usage c. 调用 onStepFinish\n */\n\n readResult = await readCurrentStream()\n\n if (readResult) {\n // 情况 2 有工具调用,但是超过 maxStep\n const { message, usage } = readResult\n addToUsage(totalUsage, usage)\n\n const messages = [...input.messages, message]\n\n onStepFinish({\n messages: messages.slice(),\n finishReason: 'tool_call',\n stepUsage: usage,\n text: message.content,\n toolCall: message.tool_calls[0],\n totalUsage: Object.assign({}, totalUsage),\n })\n\n const [s1, s2] = currentRes.tee()\n return {\n messages: Promise.resolve([...input.messages, message]),\n dataStream: createAsyncIterable(s1),\n textStream: createAsyncIterable(s2.pipeThrough(new TransformStream({\n transform(chunk, controller) {\n const str = chunk?.choices?.[0]?.delta?.content\n if (typeof str === 'string') controller.enqueue(str)\n },\n }),),),\n usage: Promise.resolve(totalUsage),\n }\n }\n // 情况 1 无工具调用\n const messagePromise = createPromise<Array<ChatModelMessage>>()\n const usagePromise = createPromise<Usage>()\n\n const message: ChatModelMessage = {\n role: 'assistant',\n content: '',\n }\n let finishReason = ''\n const stepUsage: Usage = { completion_tokens: 0, prompt_tokens: 0, total_tokens: 0 }\n\n const originStream = currentRes.pipeThrough(new TransformStream({\n transform(chunk, controller) {\n // 不改变 chunk 内容,只是拦截下内容拼最后的结果\n const content = chunk?.choices?.[0]?.delta?.content\n if (typeof content === 'string') {\n message.content += content\n }\n\n const reason = chunk?.choices?.[0]?.finish_reason\n if (reason) finishReason = reason\n\n // TODO: 不同大模型的 stream usage 格式不一样,后续可能要调整.\n // hunyuan 每个 chunk 都会有 usage,逐步增加,以最后一个的为准;\n // zhipu 最后 chunk 会有 usage;\n if (chunk?.usage?.completion_tokens) stepUsage.completion_tokens = chunk.usage.completion_tokens\n if (chunk?.usage?.prompt_tokens) stepUsage.prompt_tokens = chunk.usage.prompt_tokens\n if (chunk?.usage?.total_tokens) stepUsage.total_tokens = chunk.usage.total_tokens\n\n controller.enqueue(chunk)\n },\n flush() {\n messagePromise.res([...input.messages, message])\n addToUsage(totalUsage, stepUsage)\n usagePromise.res(Object.assign({}, totalUsage))\n onStepFinish?.({\n messages: [...input.messages, message],\n finishReason,\n text: message.content,\n stepUsage,\n totalUsage: Object.assign({}, totalUsage),\n })\n },\n }),)\n\n const [s1, s2] = originStream.tee()\n\n return {\n messages: messagePromise.promise,\n dataStream: createAsyncIterable(s1),\n textStream: createAsyncIterable(s2.pipeThrough(new TransformStream({\n transform(chunk, controller) {\n const content = chunk?.choices?.[0]?.delta?.content\n if (typeof content === 'string') {\n controller.enqueue(content)\n }\n },\n }),),),\n usage: usagePromise.promise,\n }\n }\n}\n\nfunction getToolCallFromGenerate(output: DoGenerateOutput) {\n const choice = output?.choices?.[0]\n\n if (!choice) return null\n\n const { finish_reason, message } = choice\n\n if (finish_reason !== 'tool_calls') return null\n if (!message) return null\n if (!isToolCallAssistantMessage(message)) return null\n\n return message.tool_calls[0]\n}\n\nfunction pushNewMessages(\n messages: Array<ChatModelMessage>,\n assistantMessage: ToolCallAssistantMessage,\n toolCallResult: unknown,\n) {\n messages.push(assistantMessage, {\n role: 'tool',\n tool_call_id: assistantMessage.tool_calls[0].id,\n content: JSON.stringify(toolCallResult),\n })\n}\n\nasync function readFunctionCallStream(stream: ReadableStream<BaseDoStreamOutputChunk>,): Promise<{ message: ToolCallAssistantMessage; usage: Usage } | null> {\n const stepUsage: Usage = { completion_tokens: 0, prompt_tokens: 0, total_tokens: 0 }\n const aStream = createAsyncIterable(stream)\n\n const retToolCall: ToolCall = {\n id: '',\n function: {\n name: '',\n arguments: '',\n },\n type: '',\n }\n\n const retMessage: ToolCallAssistantMessage = {\n role: 'assistant',\n content: '',\n tool_calls: [retToolCall],\n }\n\n for await (const chunk of aStream) {\n const choice = chunk?.choices[0]\n if (!choice) return null\n\n const { finish_reason, delta } = choice\n\n if (finish_reason !== 'tool_calls') return null\n if (!delta) continue\n\n if (delta.content) retMessage.content += delta.content\n\n if (!('tool_calls' in delta)) continue\n const toolCall = delta?.tool_calls?.[0]\n if (toolCall?.id) retToolCall.id = toolCall.id\n if (toolCall?.type) retToolCall.type = toolCall.type\n if (toolCall?.function?.name) retToolCall.function.name = toolCall.function.name\n if (toolCall?.function?.arguments) retToolCall.function.arguments += toolCall.function.arguments\n\n // TODO: 不同大模型的 stream usage 格式不一样,后续可能要调整.\n // hunyuan 每个 chunk 都会有 usage,逐步增加,以最后一个的为准;\n // zhipu 最后 chunk 会有 usage;\n if (chunk?.usage?.completion_tokens) stepUsage.completion_tokens = chunk.usage.completion_tokens\n if (chunk?.usage?.prompt_tokens) stepUsage.prompt_tokens = chunk.usage.prompt_tokens\n if (chunk?.usage?.total_tokens) stepUsage.total_tokens = chunk.usage.total_tokens\n }\n\n return {\n message: retMessage,\n usage: stepUsage,\n }\n}\n\nexport const toolMap = new Map<string, CallableFunction>()\n\nfunction callTool(toolCall: ToolCall) {\n return toolMap.get(toolCall.function.name)(JSON.parse(toolCall.function.arguments))\n}\n\nfunction createSolidUsage(usage?: Partial<Usage>): Usage {\n return {\n completion_tokens: usage?.completion_tokens ?? 0,\n prompt_tokens: usage?.prompt_tokens ?? 0,\n total_tokens: usage?.total_tokens ?? 0,\n }\n}\n\nfunction addToUsage(targetUsage: Usage, sourceUsage: Usage) {\n targetUsage.completion_tokens += sourceUsage.completion_tokens\n targetUsage.prompt_tokens += sourceUsage.prompt_tokens\n targetUsage.total_tokens += sourceUsage.total_tokens\n}\n","export abstract class SimpleChatModel {\n public abstract doGenerate(data: BaseChatModelInput, options?: ReqOptions): Promise<DoGenerateOutput>\n\n public abstract doStream(data: BaseChatModelInput, options?: ReqOptions): Promise<DoStreamOutput>\n}\n\ntype RawResponse = { rawResponse?: any }\n\nexport type DoGenerateOutput = BaseDoGenerateOutput & RawResponse\n\nexport type DoStreamOutput = AsyncIterableReadableStream<BaseDoStreamOutputChunk & RawResponse>\n\nexport type ChatModelConstructor = typeof SimpleChatModel\n\nexport type AsyncIterableReadableStream<T> = ReadableStream<T> & {\n [Symbol.asyncIterator]: () => { next(): Promise<IteratorResult<T>> }\n}\n\nexport interface IModelReqInput {\n url: string\n headers?: Record<string, string>\n data?: Object\n stream?: boolean\n timeout?: number\n}\n\nexport type ModelReq = <T extends IModelReqInput>(\n props: T,\n) => T['stream'] extends true ? Promise<ReadableStream<Uint8Array>> : Promise<Object>\n\nexport interface IBotReqInput {\n url: string\n method: string\n headers?: Record<string, string>\n data?: Object\n stream?: boolean\n timeout?: number\n}\n\nexport interface ReqOptions {\n timeout?: number\n}\n\nexport type BotReq = <T extends IBotReqInput>(\n props: T,\n) => T['stream'] extends true ? Promise<ReadableStream<Uint8Array>> : Promise<Object>\n\nexport type UserMessage = {\n role: 'user'\n content: string\n}\n\nexport type SystemMessage = {\n role: 'system'\n content: string\n}\n\nexport type AssistantMessage = PlainAssistantMessage | ToolCallAssistantMessage\n\nexport type PlainAssistantMessage = {\n role: 'assistant'\n content: string\n}\n\nexport type ToolCallAssistantMessage = {\n role: 'assistant'\n tool_calls: Array<ToolCall>\n content?: string\n}\n\nexport type ToolMessage = {\n role: 'tool'\n tool_call_id: string\n content: string\n}\n\nexport type ChatModelMessage = UserMessage | SystemMessage | AssistantMessage | ToolMessage\n\nexport type FunctionTool = {\n name: string\n description: string\n fn: CallableFunction\n parameters: object\n}\n\n// #region 大模型标准输入类型\nexport interface BaseChatModelInput {\n model: string\n messages: Array<ChatModelMessage>\n temperature?: number\n top_p?: number\n tools?: Array<ModelTool>\n tool_choice?: 'none' | 'auto' | 'custom'\n}\n\n/**\n * 给 LLM 发请求时要传的工具\n */\nexport type ModelTool = {\n type: string\n function: ModelToolFunction\n}\n\n/**\n * 给 LLM 发请求时要传的工具函数\n */\nexport type ModelToolFunction = {\n name: string\n description: string\n /**\n * 描述函数参数的 JSON Schema\n */\n parameters: object\n}\n// #endregion\n\n// #region 大模型标准响应类型\nexport type ToolCall = {\n id: string\n type: string\n function: { name: string; arguments: string }\n}\n\ntype FinishReason = 'tool_calls' | (string & {})\n\nexport type Usage = {\n completion_tokens: number\n prompt_tokens: number\n total_tokens: number\n}\n\nexport interface BaseDoGenerateOutput {\n choices?: Array<{\n finish_reason?: FinishReason\n message?: ChatModelMessage\n }>\n usage?: Usage\n}\n\nexport interface BaseDoStreamOutputChunk {\n choices?: Array<{\n finish_reason?: FinishReason\n delta?: ChatModelMessage\n }>\n usage?: Usage\n}\n// #endregion\n\n// #region Image Model Types\n/**\n * 图片生成输入参数\n */\nexport interface ImageGenerateInput {\n model: string // 模型名称,例如 'hunyuan-image'、'dall-e-3'\n prompt: string // 用于描述要生成的图片内容\n size?: string // 尺寸\n n?: number // 张数\n [key: string]: unknown // 允许额外的厂商特定参数\n}\n\n/**\n * 图片编辑输入参数\n */\nexport interface ImageEditInput {\n model: string\n prompt: string\n size?: string // 尺寸\n n?: number // 张数\n [key: string]: unknown // 允许额外的厂商特定参数\n}\n\nexport interface HunyuanGenerateImageInput {\n model: 'hunyuan-image'\n /** 用来生成图像的文本描述 */\n prompt: string\n /**\n * 模型版本,支持 v1.8.1 和 v1.9,默认版本 v1.8.1\n * - v1.8.1: 采用二阶段模型支持文生图任务,针对图像细节、稳定性等要求高的任务较为合适\n * - v1.9: 采用模型矩阵能力支持文生图任务,后端由人像、游戏、通用模型,以及各类功能插件组成,灵活适配多种文生图任务\n */\n version?: 'v1.8.1' | 'v1.9' | (string & {})\n /**\n * 图片尺寸,默认 \"1024x1024\"\n * v1.9 仅支持以下几个尺寸:\n * - 1024x1024\n * - 1024x768, 1152x864\n * - 768x1024, 864x1152\n * - 1280x768 (16:9)\n * - 768x1280 (9:16)\n * - 1280x720 (16:9)\n * - 720x1280 (9:16)\n *\n * 支持用户自定义尺寸,但输入尺寸只支持 768-1280 之间且为 64 的倍数的数字\n */\n size?: string\n /**\n * 仅 v1.9 支持,负向词\n * 如果不传则使用各个模型内部的默认负向词\n */\n negative_prompt?: string\n /**\n * 仅 v1.9 支持,可指定风格:\n * - 古风二次元风格\n * - 都市二次元风格\n * - 悬疑风格\n * - 校园风格\n * - 都市异能风格\n */\n style?: '古风二次元风格' | '都市二次元风格' | '悬疑风格' | '校园风格' | '都市异能风格' | (string & {})\n /**\n * 为 true 时对 prompt 进行改写,实际生成的图片会使用改写后的 prompt 进行生成\n * 多数场景可提升生成的图片效果,默认为 true\n */\n revise?: boolean\n /**\n * 生成图片个数,默认为 1\n * 目前只支持生成一张,固定为 1,传其他的值会报错\n */\n n?: number\n /**\n * 业务自定义水印内容\n * 限制 16 个字符长度(不区分中英文),生成在图片右下角\n */\n footnote?: string\n /**\n * 生成种子,仅当生成图片数为 1 时生效\n * 范围 [1, 4294967295],不传时默认随机\n */\n seed?: number\n}\n\nexport interface HunyuanARGenerateImageInput {\n /** 模型名称:hunyuan-image-v3.0-v1.0.4(推荐)或 hunyuan-image-v3.0-v1.0.1 */\n model: 'hunyuan-image-v3.0-v1.0.4' | 'hunyuan-image-v3.0-v1.0.1'\n /** 生成图片使用的文本,不超过 8192 字符 */\n prompt: string\n /**\n * 图片尺寸,格式 \"${宽}x${高}\",默认 \"1024x1024\"\n * hunyuan-image-v3.0-v1.0.4:宽高 [512, 2048],面积不超过 1024x1024\n * hunyuan-image-v3.0-v1.0.1:支持固定尺寸列表\n */\n size?: string\n /** 生成种子,仅当生成图片数为 1 时生效,范围 [1, 4294967295] */\n seed?: number\n /** 业务自定义水印内容,限制 16 字符,生成在图片右下角 */\n footnote?: string\n /** 是否对 prompt 改写,默认开启。改写会增加约 30s 耗时 */\n revise?: { value: boolean }\n /** 改写是否开启 thinking 模式,默认开启。开启后效果提升但耗时增加(最大 60s) */\n enable_thinking?: { value: boolean }\n}\n\nexport interface HunyuanARGenerateImageOutput {\n /** 此次请求的 id */\n id: string\n /** unix 时间戳 */\n created: number\n /** 返回的图片生成内容 */\n data: Array<{\n /** 生成的图片 url,有效期 24 小时 */\n url: string\n /** 改写后的 prompt */\n revised_prompt?: string\n }>\n}\n\nexport type HunyuanEditImageInput = {\n /** 模型名称,本期为 hunyuan-image,即为商品图编辑场景 */\n model: 'hunyuan-image' | (string & {})\n /** 编辑的文本描述 */\n prompt: string\n /** 模型版本 */\n version?: string\n /**\n * 图片尺寸,默认 \"800x800\"\n * 支持用户自定义尺寸,但输入尺寸只支持 512-1280 之间\n * 目前只支持 1:1、16:9、9:16 三个尺寸\n */\n size?: string\n /**\n * 生成图片个数,默认为 1\n * 目前只支持生成一张,固定为 1,传其他的值会报错\n */\n n?: number\n /**\n * beta 参数,随机种子\n * 范围 [1, 4294967295],不传时默认随机\n */\n seed?: number\n /**\n * 业务自定义角标内容\n * 限制 16 个字符长度(不区分中英文)\n */\n footnote?: string\n /**\n * 图 base64 编码,大小不超过 6M\n * 支持 jpg/jpeg 格式,和 image_url 二选一\n * 长短边比例要求 2:1 内\n */\n image?: string\n /**\n * 图片 url\n * 长短边比例要求 2:1 内,和 image 二选一\n */\n image_url?: string\n} & (\n | {\n mask: string\n mask_url?: never\n }\n | {\n mask?: never\n mask_url: string\n }\n)\n\n/**\n * 混元图片生成输出\n */\nexport interface HunyuanGenerateImageOutput {\n /** 此次请求的 id */\n id: string\n /** unix 时间戳 */\n created: number\n /** 返回的图片生成内容 */\n data: Array<{\n /** 生成的图片 url,有效期为 24 小时 */\n url: string\n /** 原 prompt 改写后的文本。若 revise 为 false,则为原 prompt */\n revised_prompt?: string\n }>\n}\n\n/**\n * 混元图片编辑输出\n */\nexport interface HunyuanEditImageOutput {\n /** 此次请求的 id */\n id: string\n /** unix 时间戳 */\n created: number\n /** 返回的图片生成内容 */\n data: Array<{\n /** 生成的图片 url,有效期为 24 小时 */\n url: string\n }>\n}\n\n// #endregion\n","import { TransformStream as _TransformStream, ReadableStream as _ReadableStream } from 'web-streams-polyfill'\nimport { createReadableStreamWrapper } from '@mattiasbuelens/web-streams-adapter'\nimport { createParser, type EventSourceParser, type ParsedEvent } from './eventsource_parser'\nimport type {\n AsyncIterableReadableStream,\n ChatModelMessage,\n ToolCallAssistantMessage,\n ModelTool,\n FunctionTool,\n} from './type'\nimport { TextDecoder } from 'text-encoding-shim'\n\nexport const ReadableStream = _ReadableStream as {\n prototype: ReadableStream\n\n new (\n underlyingSource: UnderlyingByteSource,\n strategy?: {\n highWaterMark?: number\n },\n ): ReadableStream<Uint8Array>\n new <R = any>(underlyingSource: UnderlyingDefaultSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>\n new <R = any>(underlyingSource?: UnderlyingSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>\n}\n\nexport const TransformStream = _TransformStream as {\n prototype: TransformStream\n\n new <I = any, O = any>(\n transformer?: Transformer<I, O>,\n writableStrategy?: QueuingStrategy<I>,\n readableStrategy?: QueuingStrategy<O>,\n ): TransformStream<I, O>\n}\n\nexport const createEventSourceParserTransformStream = () => {\n let parser!: EventSourceParser\n\n return new TransformStream<string, ParsedEvent>({\n start(controller) {\n parser = createParser((event) => {\n if (event.type === 'event') {\n controller.enqueue(event)\n }\n })\n },\n transform(chunk) {\n parser.feed(chunk)\n },\n })\n}\n\nexport const toPolyfillReadable = createReadableStreamWrapper(ReadableStream)\n\nexport class TextDecoderStream {\n private handle: TextDecoder\n\n private transform = new TransformStream({\n transform: (chunk, controller) => {\n const value = this.handle.decode(new Uint8Array(chunk), { stream: true })\n\n if (value) {\n controller.enqueue(value)\n }\n },\n flush: (controller) => {\n const value = this.handle.decode()\n if (value) {\n controller.enqueue(value)\n }\n\n controller.terminate()\n },\n })\n\n constructor(encoding = 'utf-8', options: TextDecoderOptions = {}) {\n this.handle = new TextDecoder(encoding, options)\n }\n\n get encoding() {\n return this.handle.encoding\n }\n\n get fatal() {\n return this.handle.fatal\n }\n\n get ignoreBOM() {\n return this.handle.ignoreBOM\n }\n\n get readable() {\n return this.transform.readable\n }\n\n get writable() {\n return this.transform.writable\n }\n\n get [Symbol.toStringTag]() {\n return 'TextDecoderStream'\n }\n}\n\nexport function createAsyncIterable<T>(stream: ReadableStream<T>) {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const _stream = stream as AsyncIterableReadableStream<T>\n (_stream as any)[Symbol.asyncIterator] = () => {\n const reader = stream.getReader()\n return {\n async next(): Promise<IteratorResult<T>> {\n const { done, value } = await reader.read()\n return done ? { done: true, value: undefined } : { done: false, value }\n },\n }\n }\n return _stream\n}\n\n/**\n * 将 SSE 二进制流转换为 T 类型的流\n */\nexport function intoStandardStream<T>(stream: ReadableStream<Uint8Array>): ReadableStream<T> {\n return createAsyncIterable(stream\n .pipeThrough(new TextDecoderStream())\n .pipeThrough(createEventSourceParserTransformStream())\n .pipeThrough(new TransformStream<ParsedEvent, T>({\n transform(chunk, controller) {\n try {\n const data = JSON.parse(chunk.data) as T\n controller.enqueue(data)\n } catch (e) {\n if (chunk.data !== '[DONE]') {\n console.warn('Error when transforming event source data to json', e, chunk)\n } else {\n controller.terminate()\n }\n }\n },\n }),),)\n}\n\n/**\n * 将 SSE 二进制流转换为字符串流\n */\nexport function intoTextStream(stream: ReadableStream<Uint8Array>): AsyncIterableReadableStream<string> {\n return createAsyncIterable((toPolyfillReadable(stream) as typeof stream).pipeThrough(new TextDecoderStream()))\n}\n\nexport async function readableStream2JsonObject(stream: ReadableStream) {\n const s = intoTextStream(stream)\n let total = ''\n for await (const chunk of s) {\n total += chunk\n }\n return JSON.parse(total)\n}\n\nexport function createPromise<T = unknown>() {\n let res: (value: T | PromiseLike<T>) => void\n let rej: (reason?: any) => void\n const promise = new Promise<T>((resolve, reject) => {\n res = resolve\n rej = reject\n })\n return { promise, res, rej }\n}\n\nexport function isToolCallAssistantMessage(message: ChatModelMessage): message is ToolCallAssistantMessage {\n // eslint-disable-next-line eqeqeq\n return message.role === 'assistant' && 'tool_calls' in message && message.tool_calls?.[0] != null\n}\n\nexport function functionToolToModelTool(tool: FunctionTool): ModelTool {\n return {\n type: 'function',\n function: {\n description: tool.description,\n name: tool.name,\n parameters: tool.parameters,\n },\n }\n}\n","import {\n SDKAdapterInterface,\n AbstractSDKRequest,\n IRequestOptions,\n ResponseObject,\n IUploadRequestOptions,\n IRequestConfig,\n IRequestMethod,\n IFetchOptions,\n} from '@cloudbase/adapter-interface'\nimport { isFormData, formatUrl, toQueryString } from '../../libs/util'\nimport { getProtocol } from '../../constants/common'\n\n/**\n * @class WebRequest\n */\nclass WebRequest extends AbstractSDKRequest {\n // 默认不限超时\n private readonly timeout: number\n // 超时提示文案\n private readonly timeoutMsg: string\n // 超时受限请求类型,默认所有请求均受限\n private readonly restrictedMethods: Array<IRequestMethod>\n constructor(config: IRequestConfig) {\n super()\n const { timeout, timeoutMsg, restrictedMethods } = config\n this.timeout = timeout || 0\n this.timeoutMsg = timeoutMsg || '请求超时'\n this.restrictedMethods = restrictedMethods || ['get', 'post', 'upload', 'download']\n }\n public get(options: IRequestOptions): Promise<ResponseObject> {\n return this.request(\n {\n ...options,\n method: 'get',\n },\n this.restrictedMethods.includes('get'),\n )\n }\n public post(options: IRequestOptions): Promise<ResponseObject> {\n return this.request(\n {\n ...options,\n method: 'post',\n },\n this.restrictedMethods.includes('post'),\n )\n }\n public put(options: IRequestOptions): Promise<ResponseObject> {\n return this.request({\n ...options,\n method: 'put',\n })\n }\n public upload(options: IUploadRequestOptions): Promise<ResponseObject> {\n const { data, file, name, method, headers = {} } = options\n const reqMethod = { post: 'post', put: 'put' }[method?.toLowerCase()] || 'put'\n // 上传方式为post时,需转换为FormData\n const formData = new FormData()\n if (reqMethod === 'post') {\n Object.keys(data).forEach((key) => {\n formData.append(key, data[key])\n })\n formData.append('key', name)\n formData.append('file', file)\n return this.request(\n {\n ...options,\n data: formData,\n method: reqMethod,\n },\n this.restrictedMethods.includes('upload'),\n )\n }\n return this.request(\n {\n ...options,\n method: 'put',\n headers,\n body: file,\n },\n this.restrictedMethods.includes('upload'),\n )\n }\n public async download(options: IRequestOptions): Promise<any> {\n try {\n const { data } = await this.get({\n ...options,\n headers: {}, // 下载资源请求不经过service,header清空\n responseType: 'blob',\n })\n const url = window.URL.createObjectURL(new Blob([data]))\n const fileName = decodeURIComponent(new URL(options.url).pathname.split('/').pop() || '')\n const link = document.createElement('a')\n\n link.href = url\n link.setAttribute('download', fileName)\n link.style.display = 'none'\n\n document.body.appendChild(link)\n link.click()\n // 回收内存\n window.URL.revokeObjectURL(url)\n document.body.removeChild(link)\n } catch (e) {}\n return new Promise((resolve) => {\n resolve({\n statusCode: 200,\n tempFilePath: options.url,\n })\n })\n }\n async fetch(options: IFetchOptions & { shouldThrowOnError?: boolean }): Promise<ResponseObject> {\n const abortController = new AbortController()\n const { url, enableAbort = false, stream = false, signal, timeout: _timeout, shouldThrowOnError = true } = options\n\n const timeout = _timeout ?? this.timeout\n\n if (signal) {\n if (signal.aborted) abortController.abort()\n signal.addEventListener('abort', () => abortController.abort())\n }\n\n let timer = null\n if (enableAbort && timeout) {\n timer = setTimeout(() => {\n console.warn(this.timeoutMsg)\n abortController.abort(new Error(this.timeoutMsg))\n }, timeout)\n }\n\n const res = await fetch(url, {\n ...options,\n signal: abortController.signal,\n })\n .then(async (response) => {\n clearTimeout(timer)\n if (shouldThrowOnError) {\n // 404 等等也会进 resolve,所以要再通过 ok 判断\n return response.ok ? response : Promise.reject(await response.json())\n }\n return response\n })\n .catch((x) => {\n clearTimeout(timer)\n if (shouldThrowOnError) {\n return Promise.reject(x)\n }\n })\n\n return {\n // eslint-disable-next-line no-nested-ternary\n data: stream ? res.body : res.headers.get('content-type')?.includes('application/json') ? res.json() : res.text(),\n statusCode: res.status,\n header: res.headers,\n }\n }\n /**\n * @param {IRequestOptions} options\n * @param {boolean} enableAbort 是否超时中断请求\n */\n protected request(options: IRequestOptions, enableAbort = false): Promise<ResponseObject> {\n const method = String(options.method).toLowerCase() || 'get'\n return new Promise((resolve) => {\n const { url, headers = {}, data, responseType, withCredentials, body, onUploadProgress } = options\n const realUrl = formatUrl(getProtocol(), url, method === 'get' ? data : {})\n const ajax = new XMLHttpRequest()\n ajax.open(method, realUrl)\n responseType && (ajax.responseType = responseType)\n Object.keys(headers).forEach((key) => {\n ajax.setRequestHeader(key, headers[key])\n })\n let timer\n if (onUploadProgress) {\n ajax.upload.addEventListener('progress', onUploadProgress)\n }\n ajax.onreadystatechange = () => {\n const result: ResponseObject = {}\n if (ajax.readyState === 4) {\n const headers = ajax.getAllResponseHeaders()\n const arr = headers.trim().split(/[\\r\\n]+/)\n // Create a map of header names to values\n const headerMap = {}\n arr.forEach((line) => {\n const parts = line.split(': ')\n const header = parts.shift().toLowerCase()\n const value = parts.join(': ')\n headerMap[header] = value\n })\n result.header = headerMap\n result.statusCode = ajax.status\n try {\n // 上传post请求返回数据格式为xml,此处容错\n result.data = responseType === 'blob' ? ajax.response : JSON.parse(ajax.responseText)\n } catch (e) {\n result.data = responseType === 'blob' ? ajax.response : ajax.responseText\n }\n clearTimeout(timer)\n resolve(result)\n }\n }\n if (enableAbort && this.timeout) {\n timer = setTimeout(() => {\n console.warn(this.timeoutMsg)\n ajax.abort()\n }, this.timeout)\n }\n // 处理 payload\n let payload\n if (isFormData(data)) {\n // FormData,不处理\n payload = data\n } else if (headers['content-type'] === 'application/x-www-form-urlencoded') {\n payload = toQueryString(data)\n } else if (body) {\n payload = body\n } else {\n // 其它情况\n payload = data ? JSON.stringify(data) : undefined\n }\n\n if (withCredentials) {\n ajax.withCredentials = true\n }\n ajax.send(payload)\n })\n }\n}\n\nfunction genAdapter() {\n const adapter: SDKAdapterInterface & { type?: 'default' | '' } = {\n type: 'default',\n root: window,\n reqClass: WebRequest,\n wsClass: WebSocket,\n localStorage,\n }\n return adapter\n}\n\nexport { genAdapter, WebRequest }\n","let sdkName = '@cloudbase/js-sdk'\nexport function setSdkName(name: string) {\n sdkName = name\n}\nexport function getSdkName() {\n return sdkName\n}\n\nlet PROTOCOL = 'https:'\n\nexport function setProtocol(protocol: 'http:' | 'https:') {\n PROTOCOL = protocol\n}\n\nexport function getProtocol() {\n return PROTOCOL\n}\n// 是否为开发模式\nexport const IS_DEBUG_MODE = typeof process === 'undefined' || typeof process.env === 'undefined' ? false : process.env.NODE_ENV === 'development'\n// 问答社区链接\nexport const COMMUNITY_SITE_URL = 'https://support.qq.com/products/148793'\n","export const ERRORS = {\n INVALID_PARAMS: 'INVALID_PARAMS',\n INVALID_SYNTAX: 'INVALID_SYNTAX',\n INVALID_OPERATION: 'INVALID_OPERATION',\n OPERATION_FAIL: 'OPERATION_FAIL',\n NETWORK_ERROR: 'NETWORK_ERROR',\n UNKOWN_ERROR: 'UNKOWN_ERROR',\n}\n","import { printGroupLog } from '../libs/util'\nimport { IS_DEBUG_MODE } from '../constants'\n\ninterface ICatchErrorsDecoratorOptions {\n mode?: 'sync' | 'async';\n customInfo?: {\n className?: string;\n methodName?: string;\n };\n title?: string;\n messages?: string[];\n}\n// firefox的stack格式与chrome不同\nlet isFirefox = false\nif (typeof navigator !== 'undefined' && navigator.userAgent) {\n isFirefox = navigator.userAgent.indexOf('Firefox') !== -1\n}\n/**\n * decorate在stack中一般都特定的规范\n */\nconst REG_STACK_DECORATE = isFirefox\n ? /(\\.js\\/)?__decorate(\\$\\d+)?<@.*\\d$/\n : /(\\/\\w+\\.js\\.)?__decorate(\\$\\d+)?\\s*\\(.*\\)$/\nconst REG_STACK_LINK = /https?:\\/\\/.+:\\d*\\/.*\\.js:\\d+:\\d+/\n/**\n * debug模式强化日志信息\n * @param options\n */\nexport function catchErrorsDecorator(options: ICatchErrorsDecoratorOptions) {\n const { mode = 'async', customInfo = {}, title, messages = [] } = options\n\n return function (\n target: any,\n methodName: string,\n descriptor: TypedPropertyDescriptor<Function>\n ) {\n // 生产环境禁用\n if (!IS_DEBUG_MODE) {\n return\n }\n const className = customInfo.className || target.constructor.name\n const fnName = customInfo.methodName || methodName\n const fn = descriptor.value\n\n // 被decorator装饰的源码link\n // 在descriptor.value外部此处创建的stack层次可触达源码\n // 而descriptor.value内部有可能由于stack太深无法触达\n const sourceLink = getSourceLink(new Error())\n\n if (mode === 'sync') {\n descriptor.value = function (...args: any[]) {\n // 此处的stack作用主要是为了获取被decorator装饰的源码class和method名称\n const innerErr: any = getRewritedError({\n err: new Error(),\n className,\n methodName: fnName,\n sourceLink,\n })\n try {\n return fn.apply(this, args)\n } catch (err) {\n let failErr = err\n const { message: errMsg, error, error_description: errorDescription } = err\n const logs: any = {\n title: title || `${className}.${fnName} failed`,\n content: [{\n type: 'error',\n body: err,\n }],\n }\n // 只特殊处理SDK业务逻辑抛出的错误-JSON string\n if (errMsg && /^\\{.*\\}$/.test(errMsg)) {\n const msg = JSON.parse(errMsg)\n logs.subtitle = errMsg\n if (msg.code) {\n if (innerErr) {\n innerErr.code = msg.code\n innerErr.msg = msg.msg\n } else {\n err.code = msg.code\n err.message = msg.msg\n }\n failErr = innerErr || err\n logs.content = messages.map(msg => ({\n type: 'info',\n body: msg,\n }))\n }\n }\n\n // oauth 错误特殊处理\n if (error && errorDescription) {\n logs.subtitle = errorDescription\n if (innerErr) {\n innerErr.code = error\n innerErr.msg = errorDescription\n } else {\n err.code = error\n err.message = errorDescription\n }\n failErr = innerErr || err\n logs.content = messages.map(msg => ({\n type: 'info',\n body: msg,\n }))\n }\n printGroupLog(logs)\n throw failErr\n }\n }\n } else {\n descriptor.value = async function (...args: any[]) {\n const innerErr: any = getRewritedError({\n err: new Error(),\n className,\n methodName: fnName,\n sourceLink,\n })\n\n try {\n return await fn.apply(this, args)\n } catch (err) {\n let failErr = err\n const { message: errMsg, error, error_description: errorDescription } = err\n const logs: any = {\n title: title || `${className}.${fnName} failed`,\n content: [{\n type: 'error',\n body: err,\n }],\n }\n // 只特殊处理SDK业务逻辑抛出的错误-JSON string\n if (errMsg && /^\\{.*\\}$/.test(errMsg)) {\n const msg = JSON.parse(errMsg)\n logs.subtitle = msg\n if (msg.code) {\n if (innerErr) {\n innerErr.code = msg.code\n innerErr.message = msg.msg\n } else {\n err.code = msg.code\n err.message = msg.msg\n }\n failErr = innerErr || err\n logs.content = messages.map(msg => ({\n type: 'info',\n body: msg,\n }))\n }\n }\n\n // oauth 错误特殊处理\n if (error && errorDescription) {\n logs.subtitle = errorDescription\n if (innerErr) {\n innerErr.code = error\n innerErr.msg = errorDescription\n } else {\n err.code = error\n err.message = errorDescription\n }\n failErr = innerErr || err\n logs.content = messages.map(msg => ({\n type: 'info',\n body: msg,\n }))\n }\n printGroupLog(logs)\n throw failErr\n }\n }\n }\n }\n}\n\n/**\n * 在原始堆栈中查找装饰器条目并返回源码链接link\n * @param err\n */\nfunction getSourceLink(err: Error) {\n let sourceLink = ''\n const outterErrStacks = err.stack.split('\\n')\n const indexOfDecorator = outterErrStacks.findIndex(str => REG_STACK_DECORATE.test(str))\n\n if (indexOfDecorator !== -1) {\n const match = REG_STACK_LINK.exec(outterErrStacks[indexOfDecorator + 1] || '')\n\n sourceLink = match ? match[0] : ''\n }\n return sourceLink\n}\n\n/**\n * 在原始堆栈中查找装饰器条目,剔除其后的无用堆栈,并将链接替换为源码link\n * @param options\n */\nfunction getRewritedError(options: {\n err: Error;\n className: string;\n methodName: string;\n sourceLink: string;\n}) {\n const { err, className, methodName, sourceLink } = options\n // 找不到源码link返回null,后续逻辑将打印原堆栈信息\n if (!sourceLink) {\n return null\n }\n\n const innerErrStack = err.stack.split('\\n')\n const REG_STACK_INNER_METHOD = isFirefox\n ? /^catchErrorsDecorator\\/<\\/descriptor.value@.*\\d$/\n : new RegExp(`${className}\\\\.descriptor.value\\\\s*\\\\[as\\\\s${methodName}\\\\]\\\\s*\\\\(.*\\\\)$`)\n const REG_STACK_INNER_METHOD_WITHOUT_LINK = isFirefox\n ? /^catchErrorsDecorator\\/<\\/descriptor.value/\n : new RegExp(`${className}\\\\.descriptor.value\\\\s*\\\\[as\\\\s${methodName}\\\\]`)\n const indexOfSource = innerErrStack.findIndex(str => REG_STACK_INNER_METHOD.test(str))\n let innerErr: Error\n if (indexOfSource !== -1) {\n // @ts-ignore\n const realErrStack = innerErrStack.filter((v, i) => i > indexOfSource)\n realErrStack.unshift(innerErrStack[indexOfSource]\n .replace(REG_STACK_INNER_METHOD_WITHOUT_LINK, `${className}.${methodName}`)\n .replace(REG_STACK_LINK, sourceLink))\n innerErr = new Error()\n innerErr.stack = `${isFirefox ? '@debugger' : 'Error'}\\n${realErrStack.join('\\n')}`\n }\n return innerErr\n}\n","export default class AbortController {\n listeners: Array<CallableFunction> = []\n signal = {\n aborted: false,\n addEventListener: (e: string, f: CallableFunction) => {\n if (e === 'abort') {\n this.listeners.push(f)\n }\n },\n }\n // eslint-disable-next-line @typescript-eslint/no-useless-constructor\n constructor() {}\n\n abort() {\n if (this.signal.aborted) return\n\n this.signal.aborted = true\n this.listeners.forEach(f => f())\n }\n}\n","import { StorageInterface, AbstractStorage, SDKAdapterInterface } from '@cloudbase/adapter-interface'\nimport { ICloudbaseCache, ICacheConfig } from '@cloudbase/types/cache'\nimport { KV, Persistence, ICloudbasePlatformInfo } from '@cloudbase/types'\nimport { printWarn } from './util'\nimport { ERRORS, getSdkName } from '../constants'\n\n/**\n * persitence=none时登录态保存在内存中\n */\nclass TcbCacheObject extends AbstractStorage {\n private readonly root: any\n constructor(root: any) {\n super()\n this.root = root\n if (!root.tcbCacheObject) {\n root.tcbCacheObject = {}\n }\n }\n public setItem(key: string, value: any) {\n this.root.tcbCacheObject[key] = value\n }\n public getItem(key: string) {\n return this.root.tcbCacheObject[key]\n }\n public removeItem(key: string) {\n delete this.root.tcbCacheObject[key]\n }\n public clear() {\n delete this.root.tcbCacheObject\n }\n}\n/**\n * 工厂函数\n */\nfunction createStorage(persistence: Persistence, adapter: SDKAdapterInterface): StorageInterface {\n switch (persistence) {\n case 'local':\n if (!adapter.localStorage) {\n printWarn(ERRORS.INVALID_PARAMS, 'localStorage is not supported on current platform')\n // 不支持localstorage的平台降级为none\n return new TcbCacheObject(adapter.root)\n }\n return adapter.localStorage\n case 'none':\n return new TcbCacheObject(adapter.root)\n default:\n if (!adapter.localStorage) {\n printWarn(ERRORS.INVALID_PARAMS, 'localStorage is not supported on current platform')\n // 不支持localstorage的平台降级为none\n return new TcbCacheObject(adapter.root)\n }\n return adapter.localStorage\n }\n}\n\nexport class CloudbaseCache implements ICloudbaseCache {\n public keys: KV<string> = {}\n\n private persistenceTag: Persistence\n private platformInfo: ICloudbasePlatformInfo\n private storage: StorageInterface\n\n constructor(config: ICacheConfig) {\n const { persistence, platformInfo = {}, keys = {} } = config\n this.platformInfo = platformInfo\n if (!this.storage) {\n this.persistenceTag = this.platformInfo.adapter.primaryStorage || persistence\n this.storage = createStorage(this.persistenceTag, this.platformInfo.adapter)\n this.keys = keys\n }\n }\n /**\n * @getter storage模式-同步/异步\n */\n get mode() {\n return this.storage.mode || 'sync'\n }\n get persistence(): Persistence {\n return this.persistenceTag\n }\n\n public setStore(key: string, value: any, version?: any) {\n if (this.mode === 'async') {\n printWarn(ERRORS.INVALID_OPERATION, 'current platform\\'s storage is asynchronous, please use setStoreAsync insteed')\n return\n }\n if (!this.storage) {\n return\n }\n\n try {\n const val = {\n version: version || 'localCachev1',\n content: value,\n }\n this.storage.setItem(key, JSON.stringify(val))\n } catch (e) {\n throw new Error(JSON.stringify({\n code: ERRORS.OPERATION_FAIL,\n msg: `[${getSdkName()}][${ERRORS.OPERATION_FAIL}]setStore failed`,\n info: e,\n }))\n }\n\n return\n }\n public async setStoreAsync(key: string, value: any, version?: any) {\n if (!this.storage) {\n return\n }\n\n try {\n const val = {\n version: version || 'localCachev1',\n content: value,\n }\n await this.storage.setItem(key, JSON.stringify(val))\n } catch (e) {\n return\n }\n\n return\n }\n public getStore(key: string, version?: string) {\n if (this.mode === 'async') {\n printWarn(ERRORS.INVALID_OPERATION, 'current platform\\'s storage is asynchronous, please use getStoreAsync insteed')\n return\n }\n try {\n // 测试用例使用\n if (typeof process !== 'undefined' && process.env?.tcb_token) {\n return process.env.tcb_token\n }\n\n if (!this.storage) {\n return ''\n }\n } catch (e) {\n return ''\n }\n\n version = version || 'localCachev1'\n\n const content = this.storage.getItem(key)\n if (!content) {\n return ''\n }\n\n if (content.indexOf(version) >= 0) {\n const d = JSON.parse(content)\n return d.content\n }\n return ''\n }\n public async getStoreAsync(key: string, version?: string) {\n try {\n // 测试用例使用\n if (typeof process !== 'undefined' && process.env?.tcb_token) {\n return process.env.tcb_token\n }\n\n if (!this.storage) {\n return ''\n }\n } catch (e) {\n return ''\n }\n\n version = version || 'localCachev1'\n\n const content = await this.storage.getItem(key)\n if (!content) {\n return ''\n }\n\n if (content.indexOf(version) >= 0) {\n const d = JSON.parse(content)\n return d.content\n }\n return ''\n }\n public removeStore(key: string) {\n if (this.mode === 'async') {\n printWarn(ERRORS.INVALID_OPERATION, 'current platform\\'s storage is asynchronous, please use removeStoreAsync insteed')\n return\n }\n this.storage.removeItem(key)\n }\n public async removeStoreAsync(key: string) {\n await this.storage.removeItem(key)\n }\n}\n","import { isString, isInstanceOf } from './util'\nimport { Listeners, ICloudbaseEventEmitter } from '@cloudbase/types/events'\n\n\n/**\n * @private\n * @function _addEventListener - 添加监听\n * @param {string} name - event名称\n * @param {Function} listener - 响应函数\n * @param {Listeners} listeners - 已存响应函数集合\n */\nfunction customeAddEventListener(name: string, listener: Function, listeners: Listeners) {\n listeners[name] = listeners[name] || []\n listeners[name].push(listener)\n}\n/**\n * @private\n * @function _removeEventListener - 移除监听\n * @param {string} name - event名称\n * @param {Function} listener - 响应函数\n * @param {Listeners} listeners - 已存响应函数集合\n */\nfunction customRemoveEventListener(name: string, listener: Function, listeners: Listeners) {\n if (listeners?.[name]) {\n const index = listeners[name].indexOf(listener)\n if (index !== -1) {\n listeners[name].splice(index, 1)\n }\n }\n}\ninterface IEvent {\n name: string;\n target: any;\n data: any;\n}\n/**\n * 自定义事件\n * @class CloudbaseEvent\n * @param {string} name - 类型\n * @param {any} data - 数据\n */\nexport class CloudbaseEvent implements IEvent {\n public readonly name: string\n public target: any\n public data: any\n\n constructor(name: string, data: any) {\n this.data = data || null\n this.name = name\n }\n}\n/**\n * 自定义错误事件\n * @class IErrorEvent\n * @extends CloudbaseEvent\n * @param {Error} error - 错误信息对象\n * @param {any} data - 数据\n */\nexport class IErrorEvent extends CloudbaseEvent {\n public readonly error: Error\n constructor(error: Error, data?: any) {\n super('error', { error, data })\n this.error = error\n }\n}\n\n/**\n * @class CloudbaseEventEmitter\n */\nexport class CloudbaseEventEmitter implements ICloudbaseEventEmitter {\n /**\n * @private\n * @readonly\n * @property {Listeners} listeners - 响应函数集合\n * @default `{}`\n */\n private readonly listeners: Listeners = {}\n\n /**\n * @public\n * @method on - 添加监听\n * @param {string} name - event名称\n * @param {Function} listener - 响应函数\n * @return `this`\n */\n public on(name: string, listener: Function): this {\n customeAddEventListener(name, listener, this.listeners)\n return this\n }\n /**\n * @public\n * @method off - 移除监听\n * @param {string} name - event名称\n * @param {Function} listener - 响应函数\n * @return `this`\n */\n public off(name: string, listener: Function): this {\n customRemoveEventListener(name, listener, this.listeners)\n return this\n }\n /**\n * @public\n * @method fire - 触发事件\n * @param {string|CloudbaseEvent} event - event\n * @return `this`\n */\n public fire(event: string | CloudbaseEvent, data?: any): this {\n // 打印错误信息\n if (isInstanceOf(event, IErrorEvent)) {\n console.error((event as IErrorEvent).error)\n return this\n }\n\n const ev: CloudbaseEvent = isString(event) ? new CloudbaseEvent(event as string, data || {}) : event as CloudbaseEvent\n\n const { name } = ev\n\n if (this.listens(name)) {\n ev.target = this\n\n const handlers = this.listeners[name] ? [...this.listeners[name]] : []\n for (const fn of handlers) {\n fn.call(this, ev)\n }\n }\n\n return this\n }\n\n /**\n * @private\n * @method listens - 判断是否监听了name事件\n * @param {string} name - event名称\n * @return `boolean`\n */\n private listens(name: string): boolean {\n return this.listeners[name] && this.listeners[name].length > 0\n }\n}\n\n\nconst eventEmitter = new CloudbaseEventEmitter()\n\nexport function addEventListener(event: string, callback: Function) {\n eventEmitter.on(event, callback)\n}\n\nexport function activateEvent(event: string, data: any = {}) {\n eventEmitter.fire(event, data)\n}\n\nexport function removeEventListener(event: string, callback: Function) {\n eventEmitter.off(event, callback)\n}\n","import { CloudbaseEventEmitter } from './events'\n\nexport const bus = new CloudbaseEventEmitter()\n\nexport const LANG_CHANGE_EVENT = 'lang_change'\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__cloudbase_adapter_interface_74717cc6__;","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__mattiasbuelens_web_streams_adapter_7d231298__;","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_jwt_decode_b659f100__;","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_text_encoding_shim_6f8fb6d2__;","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_web_streams_polyfill_c4c9f3ad__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(756);\n"],"names":["bot_1","require","models","__importStar","utils_1","utilities_1","MODELS","AI","req","baseUrl","i18n","_this","modelRequest","_a","url","data","headers","stream","timeout","fetchHeaders","Object","assign","Accept","this","fetch","method","__assign","_c","_d","LANG_HEADER_KEY","_e","lang","body","JSON","stringify","_b","_f","sent","responseData","header","handleResponseData","botRequest","concat","obj","entries","map","key","value","join","apply","_h","_g","aiBaseUrl","aiBotBaseUrl","bot","Bot","langEvent","bus","on","LANG_CHANGE_EVENT","params","prototype","GO_TO_AI_TEXT","t","json","code","Error","message","get","call","includes","readableStream2JsonObject","createModel","model","options","simpleModel","SimpleModelConstructor","subUrl","defaultModelSubUrl","DefaultSimpleModel","ReactModel","registerModel","name","console","warn","createImageModel","provider","DefaultImageModel","registerFunctionTool","functionTool","toolMap","has","set","fn","exports","token","arguments","rest","__rest","Authorization","list","props","create","botInfo","botId","update","delete","getChatRecords","sendFeedback","userFeedback","getFeedback","uploadFiles","createConversation","getConversation","pageSize","pageNumber","offset","limit","deleteConversation","conversationId","speechToText","textToSpeech","getTextToSpeechResult","getRecommendQuestions","res","StreamResult","generateBot","getPreview","generateImage","sendMessage","_stream","toPolyfillReadable","_eventSourceStream","pipeThrough","TextDecoderStream","createEventSourceParserTransformStream","defineProperty","tee","s1","s2","createAsyncIterable","teeedStream","eventSourceStream","TransformStream","transform","chunk","controller","parse","enqueue","e","terminate","dataStream","content","parse_1","enumerable","createParser","onParse","isFirstChunk","buffer","startingPosition","startingFieldLength","eventId","eventName","reset","feed","BOM","every","charCode","index","charCodeAt","hasBom","slice","length","position","discardTrailingNewline","lineLength","fieldLength","character","parseEventStreamLine","undefined","lineBuffer","type","id","event","step","noValue","field","valueLength","toString","retry","parseInt","Number","isNaN","AI_1","utils","restModels","createAI","env","getAccessToken","handleReqInstance","download","post","upload","__awaiter","restOptions","accessToken","createRequestInstanceWithAccessTokenHeader","getReq","getBaseUrl","createAi","component","entity","ai","request","getEndPointWithKey","BASE_URL","PROTOCOL","getUrlFromCloud","config","registerAi","app","registerComponent","__exportStar","window","processInput","input","messages","temperature","tools","top_p","ArkSimpleModel","doGenerate","Promise","rawResponse","doStream","isToolCall","arkStream","intoStandardStream","streamWithRaw","newChoices","choices","choice","delta","isToolCallAssistantMessage","finish_reason","newChunk","DSSimpleModel","role","DeepSeekSimpleModel","standardStream","util_1","HunYuanSimpleModel","output","titleCaseToSnakeCase","Response","hunyuanStream","_chunk","tool_choice","forEach","tool_calls","filter","tool_call","tool","handleTools","Array","isArray","item","reduce","acc","ret","replace","match","toLowerCase","charAt","HunYuanBetaSimpleModel","hunyuanBetaStream","HunYuanExpSimpleModel","HunYuanOpenSimpleModel","MoonshotSimpleModel","YiSimpleModel","ZhiPuSimpleModel","_data","zhipuStream","defaultGenerateImageSubUrl","generateImageSubUrlConfig","generateImageImpl","bind","newSubUrl","getGenerateUrl","index_1","index_2","index_3","index_4","index_5","index_6","index_7","index_8","index_9","DeepSeek_1","Default_1","image_model_1","hunyuan","ark","dashscope","moonshot","zhipu","deepseek","model_1","onStepFinish","abortSignal","maxSteps","topP","toolChoice","b","functionToolToModelTool","generateText","_input","rawResponses","totalUsage","completion_tokens","prompt_tokens","total_tokens","currentRes","currentStep","push","toolCall","getToolCallFromGenerate","stepUsage_1","createSolidUsage","usage","addToUsage","callTool","toolCallResult","finishReason","text","toolResult","stepUsage","pushNewMessages","error","e_1","lastChoice","lastMessage","__spreadArray","streamText","_j","readResult","readCurrentStream","oldStream","newStream","aStream","retMessage","retToolCall","function","aStream_1","__asyncValues","aStream_1_1","_k","readFunctionCallStream","assistantMessage","stepUsage_2","s1_1","s2_1","resolve","textStream","str","e_2","message_1","s1_2","s2_2","messagePromise","createPromise","usagePromise","originStream","reason","flush","promise","tool_call_id","targetUsage","sourceUsage","Map","web_streams_polyfill_1","web_streams_adapter_1","eventsource_parser_1","text_encoding_shim_1","ReadableStream","parser","start","createReadableStreamWrapper","encoding","handle","decode","Uint8Array","TextDecoder","fatal","ignoreBOM","readable","writable","Symbol","toStringTag","asyncIterator","reader","getReader","next","read","done","intoTextStream","s","total","s_1","s_1_1","rej","reject","description","parameters","RUNTIME","Web","adapters","_i","adapterList_1","adapter","isMatch","genAdapter","runtime","WEB","adapter_interface_1","common_1","WebRequest","_super","timeoutMsg","restrictedMethods","__extends","put","file","reqMethod","formData","FormData","keys","append","responseType","URL","createObjectURL","Blob","fileName","decodeURIComponent","pathname","split","pop","link","document","createElement","href","setAttribute","style","display","appendChild","click","revokeObjectURL","removeChild","statusCode","tempFilePath","abortController","AbortController","enableAbort","signal","_timeout","shouldThrowOnError","aborted","abort","addEventListener","timer","setTimeout","then","response","clearTimeout","ok","catch","x","status","String","payload","withCredentials","onUploadProgress","realUrl","formatUrl","getProtocol","ajax","XMLHttpRequest","open","setRequestHeader","onreadystatechange","result","readyState","arr","getAllResponseHeaders","trim","headerMap_1","line","parts","shift","responseText","isFormData","toQueryString","send","AbstractSDKRequest","root","reqClass","wsClass","WebSocket","localStorage","sdkName","protocol","INVALID_PARAMS","INVALID_SYNTAX","INVALID_OPERATION","OPERATION_FAIL","NETWORK_ERROR","UNKOWN_ERROR","constants_1","isFirefox","navigator","userAgent","indexOf","REG_STACK_DECORATE","REG_STACK_LINK","getRewritedError","err","className","methodName","sourceLink","innerErr","innerErrStack","stack","REG_STACK_INNER_METHOD","RegExp","REG_STACK_INNER_METHOD_WITHOUT_LINK","indexOfSource","findIndex","test","realErrStack","v","i","unshift","mode","customInfo","title","target","descriptor","IS_DEBUG_MODE","constructor","fnName","outterErrStacks","indexOfDecorator","exec","getSourceLink","args","failErr","errMsg","errorDescription","error_description","logs","msg","subtitle","printGroupLog","err_1","constants","cache","events","helpers","abortController_1","__importDefault","default","jwt","listeners","f","TcbCacheObject","tcbCacheObject","setItem","getItem","removeItem","clear","AbstractStorage","CloudbaseCache","persistence","platformInfo","storage","persistenceTag","primaryStorage","printWarn","ERRORS","createStorage","setStore","version","val","getSdkName","info","setStoreAsync","getStore","process","tcb_token","getStoreAsync","removeStore","removeStoreAsync","CloudbaseEvent","IErrorEvent","CloudbaseEventEmitter","listener","customeAddEventListener","off","splice","customRemoveEventListener","fire","isInstanceOf","ev","isString","listens","handlers_1","eventEmitter","callback","events_1","instance","construct","Math","random","d","Date","getTime","d2","now","c","r","floor","query","urlHasQuery","queryString","encodeURIComponent","u","location","search","reg","substr","matches","hash","sourceURL","rtn","cb","throwPromiseNotDefined","log","printTrace","collapsed","groupCollapsed","group","content_1","tip","trace","groupEnd","ms","phoneNumber","queryObj","matched","parseQueryString","restQueryObj","state","captchaData","module","__WEBPACK_EXTERNAL_MODULE__cloudbase_adapter_interface_74717cc6__","__WEBPACK_EXTERNAL_MODULE__mattiasbuelens_web_streams_adapter_7d231298__","__WEBPACK_EXTERNAL_MODULE_jwt_decode_b659f100__","__WEBPACK_EXTERNAL_MODULE_text_encoding_shim_6f8fb6d2__","__WEBPACK_EXTERNAL_MODULE_web_streams_polyfill_c4c9f3ad__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"index.esm.js","mappings":"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","sources":["webpack://@cloudbase/js-sdk/webpack/bootstrap","webpack://@cloudbase/js-sdk/webpack/runtime/define property getters","webpack://@cloudbase/js-sdk/webpack/runtime/hasOwnProperty shorthand","webpack://@cloudbase/js-sdk/webpack/runtime/make namespace object","webpack://@cloudbase/js-sdk/external module \"web-streams-polyfill\"","webpack://@cloudbase/js-sdk/external module \"@mattiasbuelens/web-streams-adapter\"","webpack://@cloudbase/js-sdk/parse.ts","webpack://@cloudbase/js-sdk/external module \"text-encoding-shim\"","webpack://@cloudbase/js-sdk/utils.ts","webpack://@cloudbase/js-sdk/index.ts","webpack://@cloudbase/js-sdk/util.ts","webpack://@cloudbase/js-sdk/image-model.ts","webpack://@cloudbase/js-sdk/model.ts","webpack://@cloudbase/js-sdk/common.ts","webpack://@cloudbase/js-sdk/errors.ts","webpack://@cloudbase/js-sdk/external module \"@cloudbase/adapter-interface\"","webpack://@cloudbase/js-sdk/web.ts","webpack://@cloudbase/js-sdk/cache.ts","webpack://@cloudbase/js-sdk/events.ts","webpack://@cloudbase/js-sdk/langEvent.ts","webpack://@cloudbase/js-sdk/decorators.ts","webpack://@cloudbase/js-sdk/external module \"jwt-decode\"","webpack://@cloudbase/js-sdk/AI.ts","webpack://@cloudbase/js-sdk/type.ts"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"ReadableStream\"]: () => __WEBPACK_EXTERNAL_MODULE_web_streams_polyfill_c4c9f3ad__.ReadableStream, [\"TransformStream\"]: () => __WEBPACK_EXTERNAL_MODULE_web_streams_polyfill_c4c9f3ad__.TransformStream });","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"createReadableStreamWrapper\"]: () => __WEBPACK_EXTERNAL_MODULE__mattiasbuelens_web_streams_adapter_7d231298__.createReadableStreamWrapper });","/**\n * EventSource/Server-Sent Events parser\n * @see https://html.spec.whatwg.org/multipage/server-sent-events.html\n *\n * Based on code from the {@link https://github.com/EventSource/eventsource | EventSource module},\n * which is licensed under the MIT license. And copyrighted the EventSource GitHub organisation.\n */\nimport type { EventSourceParseCallback, EventSourceParser } from './types'\n\n/**\n * Creates a new EventSource parser.\n *\n * @param onParse - Callback to invoke when a new event is parsed, or a new reconnection interval\n * has been sent from the server\n *\n * @returns A new EventSource parser, with `parse` and `reset` methods.\n * @public\n */\nexport function createParser(onParse: EventSourceParseCallback): EventSourceParser {\n // Processing state\n let isFirstChunk: boolean\n let buffer: string\n let startingPosition: number\n let startingFieldLength: number\n\n // Event state\n let eventId: string | undefined\n let eventName: string | undefined\n let data: string\n\n reset()\n return { feed, reset }\n\n function reset(): void {\n isFirstChunk = true\n buffer = ''\n startingPosition = 0\n startingFieldLength = -1\n\n eventId = undefined\n eventName = undefined\n data = ''\n }\n\n function feed(chunk: string): void {\n buffer = buffer ? buffer + chunk : chunk\n\n // Strip any UTF8 byte order mark (BOM) at the start of the stream.\n // Note that we do not strip any non - UTF8 BOM, as eventsource streams are\n // always decoded as UTF8 as per the specification.\n if (isFirstChunk && hasBom(buffer)) {\n buffer = buffer.slice(BOM.length)\n }\n\n isFirstChunk = false\n\n // Set up chunk-specific processing state\n const { length } = buffer\n let position = 0\n let discardTrailingNewline = false\n\n // Read the current buffer byte by byte\n while (position < length) {\n // EventSource allows for carriage return + line feed, which means we\n // need to ignore a linefeed character if the previous character was a\n // carriage return\n // @todo refactor to reduce nesting, consider checking previous byte?\n // @todo but consider multiple chunks etc\n if (discardTrailingNewline) {\n if (buffer[position] === '\\n') {\n position += 1\n }\n discardTrailingNewline = false\n }\n\n let lineLength = -1\n let fieldLength = startingFieldLength\n let character: string\n\n for (let index = startingPosition; lineLength < 0 && index < length; index++) {\n character = buffer[index]\n if (character === ':' && fieldLength < 0) {\n fieldLength = index - position\n } else if (character === '\\r') {\n discardTrailingNewline = true\n lineLength = index - position\n } else if (character === '\\n') {\n lineLength = index - position\n }\n }\n\n if (lineLength < 0) {\n startingPosition = length - position\n startingFieldLength = fieldLength\n break\n } else {\n startingPosition = 0\n startingFieldLength = -1\n }\n\n parseEventStreamLine(buffer, position, fieldLength, lineLength)\n\n position += lineLength + 1\n }\n\n if (position === length) {\n // If we consumed the entire buffer to read the event, reset the buffer\n buffer = ''\n } else if (position > 0) {\n // If there are bytes left to process, set the buffer to the unprocessed\n // portion of the buffer only\n buffer = buffer.slice(position)\n }\n }\n\n function parseEventStreamLine(lineBuffer: string, index: number, fieldLength: number, lineLength: number) {\n if (lineLength === 0) {\n // We reached the last line of this event\n if (data.length > 0) {\n onParse({\n type: 'event',\n id: eventId,\n event: eventName || undefined,\n data: data.slice(0, -1), // remove trailing newline\n })\n\n data = ''\n eventId = undefined\n }\n eventName = undefined\n return\n }\n\n const noValue = fieldLength < 0\n const field = lineBuffer.slice(index, index + (noValue ? lineLength : fieldLength))\n let step = 0\n\n if (noValue) {\n step = lineLength\n } else if (lineBuffer[index + fieldLength + 1] === ' ') {\n step = fieldLength + 2\n } else {\n step = fieldLength + 1\n }\n\n const position = index + step\n const valueLength = lineLength - step\n const value = lineBuffer.slice(position, position + valueLength).toString()\n\n if (field === 'data') {\n data += value ? `${value}\\n` : '\\n'\n } else if (field === 'event') {\n eventName = value\n } else if (field === 'id' && !value.includes('\\u0000')) {\n eventId = value\n } else if (field === 'retry') {\n const retry = parseInt(value, 10)\n if (!Number.isNaN(retry)) {\n onParse({ type: 'reconnect-interval', value: retry })\n }\n }\n }\n}\n\nconst BOM = [239, 187, 191]\n\nfunction hasBom(buffer: string) {\n return BOM.every((charCode: number, index: number) => buffer.charCodeAt(index) === charCode)\n}\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"TextDecoder\"]: () => __WEBPACK_EXTERNAL_MODULE_text_encoding_shim_6f8fb6d2__.TextDecoder });","import { TransformStream as _TransformStream, ReadableStream as _ReadableStream } from 'web-streams-polyfill'\nimport { createReadableStreamWrapper } from '@mattiasbuelens/web-streams-adapter'\nimport { createParser, type EventSourceParser, type ParsedEvent } from './eventsource_parser'\nimport type {\n AsyncIterableReadableStream,\n ChatModelMessage,\n ToolCallAssistantMessage,\n ModelTool,\n FunctionTool,\n} from './type'\nimport { TextDecoder } from 'text-encoding-shim'\n\nexport const ReadableStream = _ReadableStream as {\n prototype: ReadableStream\n\n new (\n underlyingSource: UnderlyingByteSource,\n strategy?: {\n highWaterMark?: number\n },\n ): ReadableStream<Uint8Array>\n new <R = any>(underlyingSource: UnderlyingDefaultSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>\n new <R = any>(underlyingSource?: UnderlyingSource<R>, strategy?: QueuingStrategy<R>): ReadableStream<R>\n}\n\nexport const TransformStream = _TransformStream as {\n prototype: TransformStream\n\n new <I = any, O = any>(\n transformer?: Transformer<I, O>,\n writableStrategy?: QueuingStrategy<I>,\n readableStrategy?: QueuingStrategy<O>,\n ): TransformStream<I, O>\n}\n\nexport const createEventSourceParserTransformStream = () => {\n let parser!: EventSourceParser\n\n return new TransformStream<string, ParsedEvent>({\n start(controller) {\n parser = createParser((event) => {\n if (event.type === 'event') {\n controller.enqueue(event)\n }\n })\n },\n transform(chunk) {\n parser.feed(chunk)\n },\n })\n}\n\nexport const toPolyfillReadable = createReadableStreamWrapper(ReadableStream)\n\nexport class TextDecoderStream {\n private handle: TextDecoder\n\n private transform = new TransformStream({\n transform: (chunk, controller) => {\n const value = this.handle.decode(new Uint8Array(chunk), { stream: true })\n\n if (value) {\n controller.enqueue(value)\n }\n },\n flush: (controller) => {\n const value = this.handle.decode()\n if (value) {\n controller.enqueue(value)\n }\n\n controller.terminate()\n },\n })\n\n constructor(encoding = 'utf-8', options: TextDecoderOptions = {}) {\n this.handle = new TextDecoder(encoding, options)\n }\n\n get encoding() {\n return this.handle.encoding\n }\n\n get fatal() {\n return this.handle.fatal\n }\n\n get ignoreBOM() {\n return this.handle.ignoreBOM\n }\n\n get readable() {\n return this.transform.readable\n }\n\n get writable() {\n return this.transform.writable\n }\n\n get [Symbol.toStringTag]() {\n return 'TextDecoderStream'\n }\n}\n\nexport function createAsyncIterable<T>(stream: ReadableStream<T>) {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const _stream = stream as AsyncIterableReadableStream<T>\n (_stream as any)[Symbol.asyncIterator] = () => {\n const reader = stream.getReader()\n return {\n async next(): Promise<IteratorResult<T>> {\n const { done, value } = await reader.read()\n return done ? { done: true, value: undefined } : { done: false, value }\n },\n }\n }\n return _stream\n}\n\n/**\n * 将 SSE 二进制流转换为 T 类型的流\n */\nexport function intoStandardStream<T>(stream: ReadableStream<Uint8Array>): ReadableStream<T> {\n return createAsyncIterable(stream\n .pipeThrough(new TextDecoderStream())\n .pipeThrough(createEventSourceParserTransformStream())\n .pipeThrough(new TransformStream<ParsedEvent, T>({\n transform(chunk, controller) {\n try {\n const data = JSON.parse(chunk.data) as T\n controller.enqueue(data)\n } catch (e) {\n if (chunk.data !== '[DONE]') {\n console.warn('Error when transforming event source data to json', e, chunk)\n } else {\n controller.terminate()\n }\n }\n },\n }),),)\n}\n\n/**\n * 将 SSE 二进制流转换为字符串流\n */\nexport function intoTextStream(stream: ReadableStream<Uint8Array>): AsyncIterableReadableStream<string> {\n return createAsyncIterable((toPolyfillReadable(stream) as typeof stream).pipeThrough(new TextDecoderStream()))\n}\n\nexport async function readableStream2JsonObject(stream: ReadableStream) {\n const s = intoTextStream(stream)\n let total = ''\n for await (const chunk of s) {\n total += chunk\n }\n return JSON.parse(total)\n}\n\nexport function createPromise<T = unknown>() {\n let res: (value: T | PromiseLike<T>) => void\n let rej: (reason?: any) => void\n const promise = new Promise<T>((resolve, reject) => {\n res = resolve\n rej = reject\n })\n return { promise, res, rej }\n}\n\nexport function isToolCallAssistantMessage(message: ChatModelMessage): message is ToolCallAssistantMessage {\n // eslint-disable-next-line eqeqeq\n return message.role === 'assistant' && 'tool_calls' in message && message.tool_calls?.[0] != null\n}\n\nexport function functionToolToModelTool(tool: FunctionTool): ModelTool {\n return {\n type: 'function',\n function: {\n description: tool.description,\n name: tool.name,\n parameters: tool.parameters,\n },\n }\n}\n","import { type ParsedEvent } from '../eventsource_parser'\nimport { BotReq, ReqOptions } from '../type'\nimport {\n IBotCreateConversation,\n IBotDeleteConversation,\n IBotGetConversation,\n IBotGetTextToSpeechResult,\n IBotPreview,\n IBotSendMessage,\n IBotSpeechToText,\n IBotTextToSpeech,\n IBotUploadFiles,\n ICreateBot,\n IDeleteBot,\n IGenerateBot,\n IGenerateImage,\n IGetBot,\n IGetBotChatRecords,\n IGetBotFeedback,\n IGetBotList,\n IGetBotRecommendQuestions,\n ISendBotFeedback,\n IUpdateBot,\n} from './types'\nimport {\n createAsyncIterable,\n toPolyfillReadable,\n createEventSourceParserTransformStream,\n TextDecoderStream,\n TransformStream,\n} from '../utils'\n\nexport class Bot {\n req: BotReq\n\n constructor(req: BotReq, public baseUrl: string) {\n // eslint-disable-next-line prefer-rest-params\n const token = arguments[2]\n if (typeof token === 'string') {\n this.req = ({ headers = {}, ...rest }) => req({ ...rest, headers: { ...headers, Authorization: `Bearer ${token}` } })\n } else {\n this.req = req\n }\n }\n\n list(props: IGetBotList, options?: ReqOptions) {\n return this.req({\n method: 'get',\n url: this.join('bots'),\n data: props,\n timeout: options?.timeout,\n })\n }\n\n create({ botInfo }: ICreateBot, options?: ReqOptions) {\n return this.req({\n method: 'post',\n url: this.join('bots'),\n data: botInfo,\n timeout: options?.timeout,\n })\n }\n\n get({ botId }: IGetBot, options?: ReqOptions) {\n return this.req({\n method: 'get',\n url: this.join(`bots/${botId}`),\n timeout: options?.timeout,\n })\n }\n\n update({ botId, botInfo }: IUpdateBot, options?: ReqOptions) {\n return this.req({\n method: 'PATCH',\n url: this.join(`bots/${botId}`),\n data: botInfo,\n timeout: options?.timeout,\n })\n }\n\n delete({ botId }: IDeleteBot, options?: ReqOptions) {\n return this.req({ method: 'delete', url: this.join(`bots/${botId}`), timeout: options?.timeout })\n }\n\n getChatRecords(props: IGetBotChatRecords, options?: ReqOptions) {\n return this.req({\n method: 'get',\n url: this.join(`bots/${props.botId}/records`),\n data: props,\n timeout: options?.timeout,\n })\n }\n\n sendFeedback({ userFeedback }: ISendBotFeedback, options?: ReqOptions) {\n return this.req({\n method: 'post',\n url: this.join(`bots/${userFeedback.botId}/feedback`),\n data: userFeedback,\n timeout: options?.timeout,\n })\n }\n\n getFeedback(props: IGetBotFeedback, options?: ReqOptions) {\n return this.req({\n method: 'get',\n url: this.join(`bots/${props.botId}/feedback`),\n data: props,\n timeout: options?.timeout,\n })\n }\n\n async uploadFiles(props: IBotUploadFiles, options?: ReqOptions) {\n return this.req({\n method: 'post',\n url: this.join(`bots/${props.botId}/files`),\n data: props,\n timeout: options?.timeout,\n })\n }\n\n async createConversation({ botId, ...rest }: IBotCreateConversation, options?: ReqOptions) {\n return this.req({\n method: 'post',\n url: this.join(`bots/${botId}/conversation`),\n data: rest,\n timeout: options?.timeout,\n })\n }\n\n async getConversation({ pageSize = 10, pageNumber = 1, botId, ...rest }: IBotGetConversation, options?: ReqOptions) {\n if (pageNumber < 1) throw new Error('pageNumber must be greater than 0')\n const offset = pageSize * (pageNumber - 1)\n const limit = pageSize\n return this.req({\n method: 'get',\n url: this.join(`bots/${botId}/conversation`),\n data: { ...rest, offset, limit },\n timeout: options?.timeout,\n })\n }\n\n async deleteConversation({ botId, conversationId, ...rest }: IBotDeleteConversation, options?: ReqOptions) {\n return this.req({\n method: 'delete',\n url: this.join(`bots/${botId}/conversation/${conversationId}`),\n data: rest,\n timeout: options?.timeout,\n })\n }\n\n async speechToText(props: IBotSpeechToText, options?: ReqOptions) {\n return this.req({\n method: 'post',\n url: this.join(`bots/${props.botId}/speech-to-text`),\n data: props,\n timeout: options?.timeout,\n })\n }\n\n async textToSpeech(props: IBotTextToSpeech, options?: ReqOptions) {\n return this.req({\n method: 'post',\n url: this.join(`bots/${props.botId}/text-to-speech`),\n data: props,\n timeout: options?.timeout,\n })\n }\n\n async getTextToSpeechResult(props: IBotGetTextToSpeechResult, options?: ReqOptions) {\n return this.req({\n method: 'get',\n url: this.join(`bots/${props.botId}/text-to-speech`),\n data: props,\n timeout: options?.timeout,\n })\n }\n\n async getRecommendQuestions(props: IGetBotRecommendQuestions, options?: ReqOptions) {\n const res = await this.req({\n method: 'post',\n url: this.join(`bots/${props.botId}/recommend-questions`),\n data: props,\n stream: true,\n timeout: options?.timeout,\n })\n return new StreamResult(res)\n }\n\n async generateBot(props: IGenerateBot, options?: ReqOptions) {\n const res = await this.req({\n method: 'post',\n url: this.join('generate-bot'),\n data: props,\n stream: true,\n timeout: options?.timeout,\n })\n return new StreamResult(res)\n }\n\n async getPreview(props: IBotPreview, options?: ReqOptions) {\n const res = await this.req({\n method: 'post',\n url: this.join('preview'),\n data: props,\n stream: true,\n timeout: options?.timeout,\n })\n return new StreamResult(res)\n }\n\n generateImage(props: IGenerateImage, options?: ReqOptions) {\n return this.req({ method: 'post', url: this.join('generate-image'), data: props, timeout: options?.timeout })\n }\n\n async sendMessage(props: IBotSendMessage, options?: ReqOptions) {\n const res = await this.req({\n method: 'post',\n url: this.join(`bots/${props.botId}/send-message`),\n data: props,\n stream: true,\n timeout: options?.timeout,\n })\n return new StreamResult(res)\n }\n\n private join(url: string) {\n return `${this.baseUrl}/${url}`\n }\n}\n\ntype BotEventStreamData = { content: string }\n\nclass StreamResult {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n private _eventSourceStream: ReadableStream<ParsedEvent>\n\n constructor(_stream: ReadableStream<Uint8Array>) {\n const stream = toPolyfillReadable(_stream) as typeof _stream\n this._eventSourceStream = stream\n .pipeThrough(new TextDecoderStream())\n .pipeThrough(createEventSourceParserTransformStream())\n }\n\n private get teeedStream() {\n const [s1, s2] = this._eventSourceStream.tee()\n this._eventSourceStream = s2\n return s1\n }\n\n get eventSourceStream() {\n return createAsyncIterable(this.teeedStream)\n }\n\n get dataStream() {\n return createAsyncIterable(this.eventSourceStream.pipeThrough(new TransformStream<ParsedEvent, BotEventStreamData>({\n transform(chunk, controller) {\n try {\n const data = JSON.parse(chunk.data)\n controller.enqueue(data)\n } catch (e) {\n if (chunk.data !== '[DONE]') {\n console.warn('Error when transforming event source data to json', e, chunk)\n } else {\n controller.terminate()\n }\n }\n },\n }),),)\n }\n\n get textStream() {\n return createAsyncIterable(this.dataStream.pipeThrough(new TransformStream<BotEventStreamData, string>({\n transform(chunk, controller) {\n controller.enqueue(chunk?.content ?? '')\n },\n }),),)\n }\n}\n","/* eslint-disable eqeqeq */\n/* eslint-disable @typescript-eslint/naming-convention */\nimport { HunYuanInputData } from './type'\nimport { BaseChatModelInput } from '../../type'\n\n/**\n * 这里的 process 只是对不符合的 input 做 warning。\n * 实际上还是会如实传递。\n * 防止未来模型参数更新,SDK 没跟上而导致用户输入无法生效。\n */\nexport function processInput(input: BaseChatModelInput): HunYuanInputData {\n const { messages, model, temperature, tool_choice, tools, top_p } = input\n\n const handleTools = () => {\n if (!tools) return undefined\n tools.forEach((tool) => {\n if (tool.type !== 'function') console.warn('`type` in tool is not \\'function\\'', tool)\n })\n return tools as HunYuanInputData['tools']\n }\n\n const handleMessages = () => {\n messages.forEach((message) => {\n if ('tool_calls' in message) {\n message.tool_calls\n .filter(tool_call => tool_call.type !== 'function')\n .forEach(tool_call => console.warn('`type` in tool_call is not \\'function\\'', tool_call, message))\n }\n })\n return messages as HunYuanInputData['messages']\n }\n\n return {\n ...input,\n messages: handleMessages(),\n model,\n tools: handleTools(),\n top_p,\n tool_choice,\n temperature,\n }\n}\n\nexport function titleCaseToSnakeCase(obj: unknown) {\n if (typeof obj !== 'object' || obj == null) return obj // 如果不是对象或者是null,则直接返回\n\n if (Array.isArray(obj)) return obj.map(item => titleCaseToSnakeCase(item)) // 如果是数组,递归处理每个元素\n\n return Object.entries(obj).reduce((acc, [key, value]) => {\n const snakeCaseKey = toSnakeCase(key)\n\n acc[snakeCaseKey] = typeof value === 'object' ? titleCaseToSnakeCase(value) : value\n return acc\n }, {})\n\n function toSnakeCase(s: string) {\n const ret = s.replace(/[A-Z]/g, match => `_${match.toLowerCase()}`)\n return ret.charAt(0) === '_' ? ret.slice(1) : ret\n }\n}\n","import type {\n ModelReq,\n // ImageEditInput,\n HunyuanGenerateImageInput,\n HunyuanGenerateImageOutput,\n HunyuanARGenerateImageInput,\n HunyuanARGenerateImageOutput,\n // HunyuanEditImageInput,\n // HunyuanEditImageOutput,\n} from '../type'\n\ninterface HunyuanImageGenerateFn {\n (input: HunyuanARGenerateImageInput): Promise<HunyuanARGenerateImageOutput>\n (input: HunyuanGenerateImageInput): Promise<HunyuanGenerateImageOutput>\n}\n\ntype GenerateImageFn<TProvider> = TProvider extends 'hunyuan-image'\n ? HunyuanImageGenerateFn\n : (input: unknown) => Promise<unknown>\n\nexport class DefaultImageModel<TProvider extends string> {\n public defaultGenerateImageSubUrl = 'images/generations'\n\n public generateImageSubUrlConfig: Record<string, Record<string, string>> = {\n 'hunyuan-image': {\n 'hunyuan-image-v3.0-v1.0.4': 'images/ar/generations',\n 'hunyuan-image-v3.0-v1.0.1': 'images/ar/generations',\n },\n }\n\n /** 生成图片 */\n public generateImage: GenerateImageFn<TProvider>\n\n constructor(private req: ModelReq, public baseUrl: string, public provider: TProvider) {\n this.generateImage = this.generateImageImpl.bind(this) as GenerateImageFn<TProvider>\n }\n\n /** generateImage 的实际实现 */\n private async generateImageImpl(input: HunyuanARGenerateImageInput | HunyuanGenerateImageInput,): Promise<HunyuanARGenerateImageOutput | HunyuanGenerateImageOutput> {\n let subUrl = this.defaultGenerateImageSubUrl\n\n if (typeof input === 'object' && input && 'model' in input && typeof input.model === 'string') {\n const newSubUrl = this.generateImageSubUrlConfig[this.provider]?.[input.model]\n if (newSubUrl) subUrl = newSubUrl\n }\n\n const res = (await this.req({\n url: this.getGenerateUrl(subUrl),\n data: input,\n stream: false,\n })) as HunyuanARGenerateImageOutput | HunyuanGenerateImageOutput\n\n return res\n }\n\n private getGenerateUrl(subUrl: string) {\n return `${this.baseUrl}/${this.provider}/${subUrl}`\n }\n}\n","/* eslint-disable @typescript-eslint/naming-convention */\n/* eslint-disable eqeqeq */\nimport {\n createAsyncIterable,\n TransformStream,\n createPromise,\n isToolCallAssistantMessage,\n functionToolToModelTool,\n} from '../utils'\nimport {\n BaseChatModelInput,\n BaseDoStreamOutputChunk,\n DoStreamOutput,\n DoGenerateOutput,\n SimpleChatModel,\n ToolCall,\n ChatModelMessage,\n AsyncIterableReadableStream,\n Usage,\n ToolCallAssistantMessage,\n ModelTool,\n FunctionTool,\n ReqOptions,\n} from '../type'\n\ntype ReactModelInput = ReactProps &\nOmit<BaseChatModelInput, 'tools'> & {\n tools?: Array<ModelTool | FunctionTool>\n topP?: number\n toolChoice?: 'none' | 'auto' | 'custom'\n}\n\ninterface IOnStepFinish {\n messages: Array<ChatModelMessage>\n text?: string\n toolCall?: ToolCall\n toolResult?: unknown\n finishReason?: string\n stepUsage?: Usage\n totalUsage?: Usage\n}\n\ninterface ReactProps {\n maxSteps?: number\n onStepFinish?: (prop: IOnStepFinish) => unknown\n abortSignal?: AbortSignal // TODO: 实现 abortSignal\n}\n\nfunction processInput(obj: ReactModelInput): [ReactProps, BaseChatModelInput] {\n const { onStepFinish, abortSignal, maxSteps, topP, toolChoice, ...b } = obj\n\n if (maxSteps != null && maxSteps < 1) {\n throw new Error('`maxSteps` muse be greater than 0.')\n }\n\n return [\n { onStepFinish, abortSignal, maxSteps },\n {\n ...b,\n tools: b.tools?.map((tool) => {\n if ('fn' in tool) {\n return functionToolToModelTool(tool)\n }\n return tool\n }),\n top_p: topP != null ? topP : b.top_p,\n tool_choice: toolChoice != null ? toolChoice : b.tool_choice,\n },\n ]\n}\n\nexport class ReactModel {\n constructor(private model: SimpleChatModel) {}\n\n public async generateText(_input: ReactModelInput, options?: ReqOptions): Promise<{\n text: string\n messages: Array<ChatModelMessage>\n usage: Usage\n rawResponses: Array<unknown>\n error?: any\n }> {\n const rawResponses = []\n const totalUsage: Usage = { completion_tokens: 0, prompt_tokens: 0, total_tokens: 0 }\n\n const [{ onStepFinish, maxSteps = 10 }, input] = processInput(_input)\n\n const doGenerate = () => this.model.doGenerate(input, options) // 后续代码会直接对 input.messages 原地修改,这里一直用同一个对象就行\n let currentRes = await doGenerate()\n let currentStep = 1\n currentRes.rawResponse && rawResponses.push(currentRes.rawResponse)\n\n let toolCall: ToolCall | null = null\n\n // TODO: 一次对话有多个 tool call? 目前没有这种现象,暂时不处理\n while (currentStep < maxSteps && (toolCall = getToolCallFromGenerate(currentRes)) != null) {\n const stepUsage = createSolidUsage(currentRes.usage)\n addToUsage(totalUsage, stepUsage)\n\n // 当判断需要工具调用时\n try {\n const toolCallResult = await callTool(toolCall) // 调用\n\n const choice = currentRes.choices[0] // getToolCallFromGenerate 保证了 choice 肯定存在\n\n await onStepFinish?.({\n finishReason: choice.finish_reason,\n messages: input.messages.slice(),\n text: choice.message.content,\n toolCall,\n toolResult: toolCallResult,\n stepUsage,\n totalUsage: Object.assign({}, totalUsage),\n })\n\n pushNewMessages(input.messages, choice.message as ToolCallAssistantMessage, toolCallResult) // 用调用结果修改最新的消息\n\n currentRes = await doGenerate() // 循环对话\n currentRes.rawResponse && rawResponses.push(currentRes.rawResponse)\n currentStep += 1\n } catch (e) {\n return {\n text: '',\n messages: input.messages,\n usage: totalUsage,\n error: e,\n rawResponses,\n }\n }\n }\n\n const lastChoice = currentRes?.choices?.[0]\n const lastMessage = lastChoice?.message\n\n const text = lastMessage?.content ?? ''\n const messages = lastMessage ? [...input.messages, lastMessage] : input.messages\n\n const stepUsage = createSolidUsage(currentRes.usage)\n addToUsage(totalUsage, stepUsage)\n\n await onStepFinish?.({\n finishReason: lastChoice.finish_reason,\n messages: messages.slice(),\n text,\n toolCall: getToolCallFromGenerate(currentRes),\n toolResult: null,\n stepUsage,\n totalUsage: Object.assign({}, totalUsage),\n })\n\n return {\n text,\n messages,\n usage: totalUsage,\n rawResponses,\n }\n }\n\n public async streamText(_input: ReactModelInput, options?: ReqOptions): Promise<{\n dataStream: DoStreamOutput\n textStream: AsyncIterableReadableStream<string>\n messages: Promise<Array<ChatModelMessage>>\n usage: Promise<Usage>\n error?: any\n }> {\n const totalUsage: Usage = { completion_tokens: 0, prompt_tokens: 0, total_tokens: 0 }\n\n const [{ onStepFinish, maxSteps = 10 }, input] = processInput(_input)\n const doStream = () => this.model.doStream(input, options) // 后续代码会直接对 input.messages 原地修改,这里一直用同一个对象就行\n let currentRes = await doStream()\n const currentStep = 1\n let readResult: { message: ToolCallAssistantMessage; usage: Usage } | null = null\n\n const readCurrentStream = () => {\n const [oldStream, newStream] = currentRes.tee()\n currentRes = createAsyncIterable(oldStream)\n return readFunctionCallStream(newStream)\n }\n\n // TODO: 一次对话有多个 tool call? 目前没有这种现象,暂时不处理\n // 这里和 generateText 不太一样,除了解析出 toolCall 外,还需要从流中构造出其他完整的信息\n while (currentStep < maxSteps && (readResult = await readCurrentStream()) != null) {\n const { message: assistantMessage, usage: stepUsage } = readResult\n addToUsage(totalUsage, stepUsage)\n\n // 当判断需要工具调用时\n const toolCall = assistantMessage.tool_calls?.[0] // 这个 toolCall 一定存在\n try {\n const toolCallResult = await callTool(toolCall) // 调用\n\n await onStepFinish?.({\n finishReason: 'tool_calls',\n messages: input.messages.slice(),\n text: assistantMessage.content,\n toolCall,\n toolResult: toolCallResult,\n stepUsage,\n totalUsage: Object.assign({}, totalUsage),\n })\n\n pushNewMessages(input.messages, assistantMessage, toolCallResult) // 用调用结果修改最新的消息\n currentRes = await doStream() // 循环对话\n } catch (e) {\n const [s1, s2] = currentRes.tee()\n return {\n messages: Promise.resolve(input.messages),\n dataStream: createAsyncIterable(s1),\n textStream: createAsyncIterable(s2.pipeThrough(new TransformStream({\n transform(chunk, controller) {\n const str = chunk?.choices?.[0]?.delta?.content\n if (typeof str === 'string') controller.enqueue(str)\n },\n }),),),\n usage: Promise.resolve(totalUsage),\n error: e,\n }\n }\n }\n\n /**\n * 最后返回时,有几种情况:\n * 1. 没超 maxStep 无工具调用\n * 2. 超了 maxStep 有工具调用\n * 3. 超了 maxStep 无工具调用\n * never. 没超 maxStep,有工具调用,这时候会进到上面的 while 循环 block 中处理\n *\n * 其中 1. 3. 可以合并,没有工具调用就应该直接返回,无论 maxStep\n *\n * 所以合并为:\n * 1. 无工具调用\n * 2. 有工具调用,但是超过 maxStep\n *\n * 这两种情况都没进到 while 循环 block 中处理\n * 我们需要 a. 塞 message b. 算 Usage c. 调用 onStepFinish\n */\n\n readResult = await readCurrentStream()\n\n if (readResult) {\n // 情况 2 有工具调用,但是超过 maxStep\n const { message, usage } = readResult\n addToUsage(totalUsage, usage)\n\n const messages = [...input.messages, message]\n\n onStepFinish({\n messages: messages.slice(),\n finishReason: 'tool_call',\n stepUsage: usage,\n text: message.content,\n toolCall: message.tool_calls[0],\n totalUsage: Object.assign({}, totalUsage),\n })\n\n const [s1, s2] = currentRes.tee()\n return {\n messages: Promise.resolve([...input.messages, message]),\n dataStream: createAsyncIterable(s1),\n textStream: createAsyncIterable(s2.pipeThrough(new TransformStream({\n transform(chunk, controller) {\n const str = chunk?.choices?.[0]?.delta?.content\n if (typeof str === 'string') controller.enqueue(str)\n },\n }),),),\n usage: Promise.resolve(totalUsage),\n }\n }\n // 情况 1 无工具调用\n const messagePromise = createPromise<Array<ChatModelMessage>>()\n const usagePromise = createPromise<Usage>()\n\n const message: ChatModelMessage = {\n role: 'assistant',\n content: '',\n }\n let finishReason = ''\n const stepUsage: Usage = { completion_tokens: 0, prompt_tokens: 0, total_tokens: 0 }\n\n const originStream = currentRes.pipeThrough(new TransformStream({\n transform(chunk, controller) {\n // 不改变 chunk 内容,只是拦截下内容拼最后的结果\n const content = chunk?.choices?.[0]?.delta?.content\n if (typeof content === 'string') {\n message.content += content\n }\n\n const reason = chunk?.choices?.[0]?.finish_reason\n if (reason) finishReason = reason\n\n // TODO: 不同大模型的 stream usage 格式不一样,后续可能要调整.\n // hunyuan 每个 chunk 都会有 usage,逐步增加,以最后一个的为准;\n // zhipu 最后 chunk 会有 usage;\n if (chunk?.usage?.completion_tokens) stepUsage.completion_tokens = chunk.usage.completion_tokens\n if (chunk?.usage?.prompt_tokens) stepUsage.prompt_tokens = chunk.usage.prompt_tokens\n if (chunk?.usage?.total_tokens) stepUsage.total_tokens = chunk.usage.total_tokens\n\n controller.enqueue(chunk)\n },\n flush() {\n messagePromise.res([...input.messages, message])\n addToUsage(totalUsage, stepUsage)\n usagePromise.res(Object.assign({}, totalUsage))\n onStepFinish?.({\n messages: [...input.messages, message],\n finishReason,\n text: message.content,\n stepUsage,\n totalUsage: Object.assign({}, totalUsage),\n })\n },\n }),)\n\n const [s1, s2] = originStream.tee()\n\n return {\n messages: messagePromise.promise,\n dataStream: createAsyncIterable(s1),\n textStream: createAsyncIterable(s2.pipeThrough(new TransformStream({\n transform(chunk, controller) {\n const content = chunk?.choices?.[0]?.delta?.content\n if (typeof content === 'string') {\n controller.enqueue(content)\n }\n },\n }),),),\n usage: usagePromise.promise,\n }\n }\n}\n\nfunction getToolCallFromGenerate(output: DoGenerateOutput) {\n const choice = output?.choices?.[0]\n\n if (!choice) return null\n\n const { finish_reason, message } = choice\n\n if (finish_reason !== 'tool_calls') return null\n if (!message) return null\n if (!isToolCallAssistantMessage(message)) return null\n\n return message.tool_calls[0]\n}\n\nfunction pushNewMessages(\n messages: Array<ChatModelMessage>,\n assistantMessage: ToolCallAssistantMessage,\n toolCallResult: unknown,\n) {\n messages.push(assistantMessage, {\n role: 'tool',\n tool_call_id: assistantMessage.tool_calls[0].id,\n content: JSON.stringify(toolCallResult),\n })\n}\n\nasync function readFunctionCallStream(stream: ReadableStream<BaseDoStreamOutputChunk>,): Promise<{ message: ToolCallAssistantMessage; usage: Usage } | null> {\n const stepUsage: Usage = { completion_tokens: 0, prompt_tokens: 0, total_tokens: 0 }\n const aStream = createAsyncIterable(stream)\n\n const retToolCall: ToolCall = {\n id: '',\n function: {\n name: '',\n arguments: '',\n },\n type: '',\n }\n\n const retMessage: ToolCallAssistantMessage = {\n role: 'assistant',\n content: '',\n tool_calls: [retToolCall],\n }\n\n for await (const chunk of aStream) {\n const choice = chunk?.choices[0]\n if (!choice) return null\n\n const { finish_reason, delta } = choice\n\n if (finish_reason !== 'tool_calls') return null\n if (!delta) continue\n\n if (delta.content) retMessage.content += delta.content\n\n if (!('tool_calls' in delta)) continue\n const toolCall = delta?.tool_calls?.[0]\n if (toolCall?.id) retToolCall.id = toolCall.id\n if (toolCall?.type) retToolCall.type = toolCall.type\n if (toolCall?.function?.name) retToolCall.function.name = toolCall.function.name\n if (toolCall?.function?.arguments) retToolCall.function.arguments += toolCall.function.arguments\n\n // TODO: 不同大模型的 stream usage 格式不一样,后续可能要调整.\n // hunyuan 每个 chunk 都会有 usage,逐步增加,以最后一个的为准;\n // zhipu 最后 chunk 会有 usage;\n if (chunk?.usage?.completion_tokens) stepUsage.completion_tokens = chunk.usage.completion_tokens\n if (chunk?.usage?.prompt_tokens) stepUsage.prompt_tokens = chunk.usage.prompt_tokens\n if (chunk?.usage?.total_tokens) stepUsage.total_tokens = chunk.usage.total_tokens\n }\n\n return {\n message: retMessage,\n usage: stepUsage,\n }\n}\n\nexport const toolMap = new Map<string, CallableFunction>()\n\nfunction callTool(toolCall: ToolCall) {\n return toolMap.get(toolCall.function.name)(JSON.parse(toolCall.function.arguments))\n}\n\nfunction createSolidUsage(usage?: Partial<Usage>): Usage {\n return {\n completion_tokens: usage?.completion_tokens ?? 0,\n prompt_tokens: usage?.prompt_tokens ?? 0,\n total_tokens: usage?.total_tokens ?? 0,\n }\n}\n\nfunction addToUsage(targetUsage: Usage, sourceUsage: Usage) {\n targetUsage.completion_tokens += sourceUsage.completion_tokens\n targetUsage.prompt_tokens += sourceUsage.prompt_tokens\n targetUsage.total_tokens += sourceUsage.total_tokens\n}\n","let sdkName = '@cloudbase/js-sdk'\nexport function setSdkName(name: string) {\n sdkName = name\n}\nexport function getSdkName() {\n return sdkName\n}\n\nlet PROTOCOL = 'https:'\n\nexport function setProtocol(protocol: 'http:' | 'https:') {\n PROTOCOL = protocol\n}\n\nexport function getProtocol() {\n return PROTOCOL\n}\n// 是否为开发模式\nexport const IS_DEBUG_MODE = typeof process === 'undefined' || typeof process.env === 'undefined' ? false : process.env.NODE_ENV === 'development'\n// 问答社区链接\nexport const COMMUNITY_SITE_URL = 'https://support.qq.com/products/148793'\n","export const ERRORS = {\n INVALID_PARAMS: 'INVALID_PARAMS',\n INVALID_SYNTAX: 'INVALID_SYNTAX',\n INVALID_OPERATION: 'INVALID_OPERATION',\n OPERATION_FAIL: 'OPERATION_FAIL',\n NETWORK_ERROR: 'NETWORK_ERROR',\n UNKOWN_ERROR: 'UNKOWN_ERROR',\n}\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"AbstractSDKRequest\"]: () => __WEBPACK_EXTERNAL_MODULE__cloudbase_adapter_interface_74717cc6__.AbstractSDKRequest, [\"AbstractStorage\"]: () => __WEBPACK_EXTERNAL_MODULE__cloudbase_adapter_interface_74717cc6__.AbstractStorage });","import {\n SDKAdapterInterface,\n AbstractSDKRequest,\n IRequestOptions,\n ResponseObject,\n IUploadRequestOptions,\n IRequestConfig,\n IRequestMethod,\n IFetchOptions,\n} from '@cloudbase/adapter-interface'\nimport { isFormData, formatUrl, toQueryString } from '../../libs/util'\nimport { getProtocol } from '../../constants/common'\n\n/**\n * @class WebRequest\n */\nclass WebRequest extends AbstractSDKRequest {\n // 默认不限超时\n private readonly timeout: number\n // 超时提示文案\n private readonly timeoutMsg: string\n // 超时受限请求类型,默认所有请求均受限\n private readonly restrictedMethods: Array<IRequestMethod>\n constructor(config: IRequestConfig) {\n super()\n const { timeout, timeoutMsg, restrictedMethods } = config\n this.timeout = timeout || 0\n this.timeoutMsg = timeoutMsg || '请求超时'\n this.restrictedMethods = restrictedMethods || ['get', 'post', 'upload', 'download']\n }\n public get(options: IRequestOptions): Promise<ResponseObject> {\n return this.request(\n {\n ...options,\n method: 'get',\n },\n this.restrictedMethods.includes('get'),\n )\n }\n public post(options: IRequestOptions): Promise<ResponseObject> {\n return this.request(\n {\n ...options,\n method: 'post',\n },\n this.restrictedMethods.includes('post'),\n )\n }\n public put(options: IRequestOptions): Promise<ResponseObject> {\n return this.request({\n ...options,\n method: 'put',\n })\n }\n public upload(options: IUploadRequestOptions): Promise<ResponseObject> {\n const { data, file, name, method, headers = {} } = options\n const reqMethod = { post: 'post', put: 'put' }[method?.toLowerCase()] || 'put'\n // 上传方式为post时,需转换为FormData\n const formData = new FormData()\n if (reqMethod === 'post') {\n Object.keys(data).forEach((key) => {\n formData.append(key, data[key])\n })\n formData.append('key', name)\n formData.append('file', file)\n return this.request(\n {\n ...options,\n data: formData,\n method: reqMethod,\n },\n this.restrictedMethods.includes('upload'),\n )\n }\n return this.request(\n {\n ...options,\n method: 'put',\n headers,\n body: file,\n },\n this.restrictedMethods.includes('upload'),\n )\n }\n public async download(options: IRequestOptions): Promise<any> {\n try {\n const { data } = await this.get({\n ...options,\n headers: {}, // 下载资源请求不经过service,header清空\n responseType: 'blob',\n })\n const url = window.URL.createObjectURL(new Blob([data]))\n const fileName = decodeURIComponent(new URL(options.url).pathname.split('/').pop() || '')\n const link = document.createElement('a')\n\n link.href = url\n link.setAttribute('download', fileName)\n link.style.display = 'none'\n\n document.body.appendChild(link)\n link.click()\n // 回收内存\n window.URL.revokeObjectURL(url)\n document.body.removeChild(link)\n } catch (e) {}\n return new Promise((resolve) => {\n resolve({\n statusCode: 200,\n tempFilePath: options.url,\n })\n })\n }\n async fetch(options: IFetchOptions & { shouldThrowOnError?: boolean }): Promise<ResponseObject> {\n const abortController = new AbortController()\n const { url, enableAbort = false, stream = false, signal, timeout: _timeout, shouldThrowOnError = true } = options\n\n const timeout = _timeout ?? this.timeout\n\n if (signal) {\n if (signal.aborted) abortController.abort()\n signal.addEventListener('abort', () => abortController.abort())\n }\n\n let timer = null\n if (enableAbort && timeout) {\n timer = setTimeout(() => {\n console.warn(this.timeoutMsg)\n abortController.abort(new Error(this.timeoutMsg))\n }, timeout)\n }\n\n const res = await fetch(url, {\n ...options,\n signal: abortController.signal,\n })\n .then(async (response) => {\n clearTimeout(timer)\n if (shouldThrowOnError) {\n // 404 等等也会进 resolve,所以要再通过 ok 判断\n return response.ok ? response : Promise.reject(await response.json())\n }\n return response\n })\n .catch((x) => {\n clearTimeout(timer)\n if (shouldThrowOnError) {\n return Promise.reject(x)\n }\n })\n\n return {\n // eslint-disable-next-line no-nested-ternary\n data: stream ? res.body : res.headers.get('content-type')?.includes('application/json') ? res.json() : res.text(),\n statusCode: res.status,\n header: res.headers,\n }\n }\n /**\n * @param {IRequestOptions} options\n * @param {boolean} enableAbort 是否超时中断请求\n */\n protected request(options: IRequestOptions, enableAbort = false): Promise<ResponseObject> {\n const method = String(options.method).toLowerCase() || 'get'\n return new Promise((resolve) => {\n const { url, headers = {}, data, responseType, withCredentials, body, onUploadProgress } = options\n const realUrl = formatUrl(getProtocol(), url, method === 'get' ? data : {})\n const ajax = new XMLHttpRequest()\n ajax.open(method, realUrl)\n responseType && (ajax.responseType = responseType)\n Object.keys(headers).forEach((key) => {\n ajax.setRequestHeader(key, headers[key])\n })\n let timer\n if (onUploadProgress) {\n ajax.upload.addEventListener('progress', onUploadProgress)\n }\n ajax.onreadystatechange = () => {\n const result: ResponseObject = {}\n if (ajax.readyState === 4) {\n const headers = ajax.getAllResponseHeaders()\n const arr = headers.trim().split(/[\\r\\n]+/)\n // Create a map of header names to values\n const headerMap = {}\n arr.forEach((line) => {\n const parts = line.split(': ')\n const header = parts.shift().toLowerCase()\n const value = parts.join(': ')\n headerMap[header] = value\n })\n result.header = headerMap\n result.statusCode = ajax.status\n try {\n // 上传post请求返回数据格式为xml,此处容错\n result.data = responseType === 'blob' ? ajax.response : JSON.parse(ajax.responseText)\n } catch (e) {\n result.data = responseType === 'blob' ? ajax.response : ajax.responseText\n }\n clearTimeout(timer)\n resolve(result)\n }\n }\n if (enableAbort && this.timeout) {\n timer = setTimeout(() => {\n console.warn(this.timeoutMsg)\n ajax.abort()\n }, this.timeout)\n }\n // 处理 payload\n let payload\n if (isFormData(data)) {\n // FormData,不处理\n payload = data\n } else if (headers['content-type'] === 'application/x-www-form-urlencoded') {\n payload = toQueryString(data)\n } else if (body) {\n payload = body\n } else {\n // 其它情况\n payload = data ? JSON.stringify(data) : undefined\n }\n\n if (withCredentials) {\n ajax.withCredentials = true\n }\n ajax.send(payload)\n })\n }\n}\n\nfunction genAdapter() {\n const adapter: SDKAdapterInterface & { type?: 'default' | '' } = {\n type: 'default',\n root: window,\n reqClass: WebRequest,\n wsClass: WebSocket,\n localStorage,\n }\n return adapter\n}\n\nexport { genAdapter, WebRequest }\n","import { StorageInterface, AbstractStorage, SDKAdapterInterface } from '@cloudbase/adapter-interface'\nimport { ICloudbaseCache, ICacheConfig } from '@cloudbase/types/cache'\nimport { KV, Persistence, ICloudbasePlatformInfo } from '@cloudbase/types'\nimport { printWarn } from './util'\nimport { ERRORS, getSdkName } from '../constants'\n\n/**\n * persitence=none时登录态保存在内存中\n */\nclass TcbCacheObject extends AbstractStorage {\n private readonly root: any\n constructor(root: any) {\n super()\n this.root = root\n if (!root.tcbCacheObject) {\n root.tcbCacheObject = {}\n }\n }\n public setItem(key: string, value: any) {\n this.root.tcbCacheObject[key] = value\n }\n public getItem(key: string) {\n return this.root.tcbCacheObject[key]\n }\n public removeItem(key: string) {\n delete this.root.tcbCacheObject[key]\n }\n public clear() {\n delete this.root.tcbCacheObject\n }\n}\n/**\n * 工厂函数\n */\nfunction createStorage(persistence: Persistence, adapter: SDKAdapterInterface): StorageInterface {\n switch (persistence) {\n case 'local':\n if (!adapter.localStorage) {\n printWarn(ERRORS.INVALID_PARAMS, 'localStorage is not supported on current platform')\n // 不支持localstorage的平台降级为none\n return new TcbCacheObject(adapter.root)\n }\n return adapter.localStorage\n case 'none':\n return new TcbCacheObject(adapter.root)\n default:\n if (!adapter.localStorage) {\n printWarn(ERRORS.INVALID_PARAMS, 'localStorage is not supported on current platform')\n // 不支持localstorage的平台降级为none\n return new TcbCacheObject(adapter.root)\n }\n return adapter.localStorage\n }\n}\n\nexport class CloudbaseCache implements ICloudbaseCache {\n public keys: KV<string> = {}\n\n private persistenceTag: Persistence\n private platformInfo: ICloudbasePlatformInfo\n private storage: StorageInterface\n\n constructor(config: ICacheConfig) {\n const { persistence, platformInfo = {}, keys = {} } = config\n this.platformInfo = platformInfo\n if (!this.storage) {\n this.persistenceTag = this.platformInfo.adapter.primaryStorage || persistence\n this.storage = createStorage(this.persistenceTag, this.platformInfo.adapter)\n this.keys = keys\n }\n }\n /**\n * @getter storage模式-同步/异步\n */\n get mode() {\n return this.storage.mode || 'sync'\n }\n get persistence(): Persistence {\n return this.persistenceTag\n }\n\n public setStore(key: string, value: any, version?: any) {\n if (this.mode === 'async') {\n printWarn(ERRORS.INVALID_OPERATION, 'current platform\\'s storage is asynchronous, please use setStoreAsync insteed')\n return\n }\n if (!this.storage) {\n return\n }\n\n try {\n const val = {\n version: version || 'localCachev1',\n content: value,\n }\n this.storage.setItem(key, JSON.stringify(val))\n } catch (e) {\n throw new Error(JSON.stringify({\n code: ERRORS.OPERATION_FAIL,\n msg: `[${getSdkName()}][${ERRORS.OPERATION_FAIL}]setStore failed`,\n info: e,\n }))\n }\n\n return\n }\n public async setStoreAsync(key: string, value: any, version?: any) {\n if (!this.storage) {\n return\n }\n\n try {\n const val = {\n version: version || 'localCachev1',\n content: value,\n }\n await this.storage.setItem(key, JSON.stringify(val))\n } catch (e) {\n return\n }\n\n return\n }\n public getStore(key: string, version?: string) {\n if (this.mode === 'async') {\n printWarn(ERRORS.INVALID_OPERATION, 'current platform\\'s storage is asynchronous, please use getStoreAsync insteed')\n return\n }\n try {\n // 测试用例使用\n if (typeof process !== 'undefined' && process.env?.tcb_token) {\n return process.env.tcb_token\n }\n\n if (!this.storage) {\n return ''\n }\n } catch (e) {\n return ''\n }\n\n version = version || 'localCachev1'\n\n const content = this.storage.getItem(key)\n if (!content) {\n return ''\n }\n\n if (content.indexOf(version) >= 0) {\n const d = JSON.parse(content)\n return d.content\n }\n return ''\n }\n public async getStoreAsync(key: string, version?: string) {\n try {\n // 测试用例使用\n if (typeof process !== 'undefined' && process.env?.tcb_token) {\n return process.env.tcb_token\n }\n\n if (!this.storage) {\n return ''\n }\n } catch (e) {\n return ''\n }\n\n version = version || 'localCachev1'\n\n const content = await this.storage.getItem(key)\n if (!content) {\n return ''\n }\n\n if (content.indexOf(version) >= 0) {\n const d = JSON.parse(content)\n return d.content\n }\n return ''\n }\n public removeStore(key: string) {\n if (this.mode === 'async') {\n printWarn(ERRORS.INVALID_OPERATION, 'current platform\\'s storage is asynchronous, please use removeStoreAsync insteed')\n return\n }\n this.storage.removeItem(key)\n }\n public async removeStoreAsync(key: string) {\n await this.storage.removeItem(key)\n }\n}\n","import { isString, isInstanceOf } from './util'\nimport { Listeners, ICloudbaseEventEmitter } from '@cloudbase/types/events'\n\n\n/**\n * @private\n * @function _addEventListener - 添加监听\n * @param {string} name - event名称\n * @param {Function} listener - 响应函数\n * @param {Listeners} listeners - 已存响应函数集合\n */\nfunction customeAddEventListener(name: string, listener: Function, listeners: Listeners) {\n listeners[name] = listeners[name] || []\n listeners[name].push(listener)\n}\n/**\n * @private\n * @function _removeEventListener - 移除监听\n * @param {string} name - event名称\n * @param {Function} listener - 响应函数\n * @param {Listeners} listeners - 已存响应函数集合\n */\nfunction customRemoveEventListener(name: string, listener: Function, listeners: Listeners) {\n if (listeners?.[name]) {\n const index = listeners[name].indexOf(listener)\n if (index !== -1) {\n listeners[name].splice(index, 1)\n }\n }\n}\ninterface IEvent {\n name: string;\n target: any;\n data: any;\n}\n/**\n * 自定义事件\n * @class CloudbaseEvent\n * @param {string} name - 类型\n * @param {any} data - 数据\n */\nexport class CloudbaseEvent implements IEvent {\n public readonly name: string\n public target: any\n public data: any\n\n constructor(name: string, data: any) {\n this.data = data || null\n this.name = name\n }\n}\n/**\n * 自定义错误事件\n * @class IErrorEvent\n * @extends CloudbaseEvent\n * @param {Error} error - 错误信息对象\n * @param {any} data - 数据\n */\nexport class IErrorEvent extends CloudbaseEvent {\n public readonly error: Error\n constructor(error: Error, data?: any) {\n super('error', { error, data })\n this.error = error\n }\n}\n\n/**\n * @class CloudbaseEventEmitter\n */\nexport class CloudbaseEventEmitter implements ICloudbaseEventEmitter {\n /**\n * @private\n * @readonly\n * @property {Listeners} listeners - 响应函数集合\n * @default `{}`\n */\n private readonly listeners: Listeners = {}\n\n /**\n * @public\n * @method on - 添加监听\n * @param {string} name - event名称\n * @param {Function} listener - 响应函数\n * @return `this`\n */\n public on(name: string, listener: Function): this {\n customeAddEventListener(name, listener, this.listeners)\n return this\n }\n /**\n * @public\n * @method off - 移除监听\n * @param {string} name - event名称\n * @param {Function} listener - 响应函数\n * @return `this`\n */\n public off(name: string, listener: Function): this {\n customRemoveEventListener(name, listener, this.listeners)\n return this\n }\n /**\n * @public\n * @method fire - 触发事件\n * @param {string|CloudbaseEvent} event - event\n * @return `this`\n */\n public fire(event: string | CloudbaseEvent, data?: any): this {\n // 打印错误信息\n if (isInstanceOf(event, IErrorEvent)) {\n console.error((event as IErrorEvent).error)\n return this\n }\n\n const ev: CloudbaseEvent = isString(event) ? new CloudbaseEvent(event as string, data || {}) : event as CloudbaseEvent\n\n const { name } = ev\n\n if (this.listens(name)) {\n ev.target = this\n\n const handlers = this.listeners[name] ? [...this.listeners[name]] : []\n for (const fn of handlers) {\n fn.call(this, ev)\n }\n }\n\n return this\n }\n\n /**\n * @private\n * @method listens - 判断是否监听了name事件\n * @param {string} name - event名称\n * @return `boolean`\n */\n private listens(name: string): boolean {\n return this.listeners[name] && this.listeners[name].length > 0\n }\n}\n\n\nconst eventEmitter = new CloudbaseEventEmitter()\n\nexport function addEventListener(event: string, callback: Function) {\n eventEmitter.on(event, callback)\n}\n\nexport function activateEvent(event: string, data: any = {}) {\n eventEmitter.fire(event, data)\n}\n\nexport function removeEventListener(event: string, callback: Function) {\n eventEmitter.off(event, callback)\n}\n","import { CloudbaseEventEmitter } from './events'\n\nexport const bus = new CloudbaseEventEmitter()\n\nexport const LANG_CHANGE_EVENT = 'lang_change'\n","import { printGroupLog } from '../libs/util'\nimport { IS_DEBUG_MODE } from '../constants'\n\ninterface ICatchErrorsDecoratorOptions {\n mode?: 'sync' | 'async';\n customInfo?: {\n className?: string;\n methodName?: string;\n };\n title?: string;\n messages?: string[];\n}\n// firefox的stack格式与chrome不同\nlet isFirefox = false\nif (typeof navigator !== 'undefined' && navigator.userAgent) {\n isFirefox = navigator.userAgent.indexOf('Firefox') !== -1\n}\n/**\n * decorate在stack中一般都特定的规范\n */\nconst REG_STACK_DECORATE = isFirefox\n ? /(\\.js\\/)?__decorate(\\$\\d+)?<@.*\\d$/\n : /(\\/\\w+\\.js\\.)?__decorate(\\$\\d+)?\\s*\\(.*\\)$/\nconst REG_STACK_LINK = /https?:\\/\\/.+:\\d*\\/.*\\.js:\\d+:\\d+/\n/**\n * debug模式强化日志信息\n * @param options\n */\nexport function catchErrorsDecorator(options: ICatchErrorsDecoratorOptions) {\n const { mode = 'async', customInfo = {}, title, messages = [] } = options\n\n return function (\n target: any,\n methodName: string,\n descriptor: TypedPropertyDescriptor<Function>\n ) {\n // 生产环境禁用\n if (!IS_DEBUG_MODE) {\n return\n }\n const className = customInfo.className || target.constructor.name\n const fnName = customInfo.methodName || methodName\n const fn = descriptor.value\n\n // 被decorator装饰的源码link\n // 在descriptor.value外部此处创建的stack层次可触达源码\n // 而descriptor.value内部有可能由于stack太深无法触达\n const sourceLink = getSourceLink(new Error())\n\n if (mode === 'sync') {\n descriptor.value = function (...args: any[]) {\n // 此处的stack作用主要是为了获取被decorator装饰的源码class和method名称\n const innerErr: any = getRewritedError({\n err: new Error(),\n className,\n methodName: fnName,\n sourceLink,\n })\n try {\n return fn.apply(this, args)\n } catch (err) {\n let failErr = err\n const { message: errMsg, error, error_description: errorDescription } = err\n const logs: any = {\n title: title || `${className}.${fnName} failed`,\n content: [{\n type: 'error',\n body: err,\n }],\n }\n // 只特殊处理SDK业务逻辑抛出的错误-JSON string\n if (errMsg && /^\\{.*\\}$/.test(errMsg)) {\n const msg = JSON.parse(errMsg)\n logs.subtitle = errMsg\n if (msg.code) {\n if (innerErr) {\n innerErr.code = msg.code\n innerErr.msg = msg.msg\n } else {\n err.code = msg.code\n err.message = msg.msg\n }\n failErr = innerErr || err\n logs.content = messages.map(msg => ({\n type: 'info',\n body: msg,\n }))\n }\n }\n\n // oauth 错误特殊处理\n if (error && errorDescription) {\n logs.subtitle = errorDescription\n if (innerErr) {\n innerErr.code = error\n innerErr.msg = errorDescription\n } else {\n err.code = error\n err.message = errorDescription\n }\n failErr = innerErr || err\n logs.content = messages.map(msg => ({\n type: 'info',\n body: msg,\n }))\n }\n printGroupLog(logs)\n throw failErr\n }\n }\n } else {\n descriptor.value = async function (...args: any[]) {\n const innerErr: any = getRewritedError({\n err: new Error(),\n className,\n methodName: fnName,\n sourceLink,\n })\n\n try {\n return await fn.apply(this, args)\n } catch (err) {\n let failErr = err\n const { message: errMsg, error, error_description: errorDescription } = err\n const logs: any = {\n title: title || `${className}.${fnName} failed`,\n content: [{\n type: 'error',\n body: err,\n }],\n }\n // 只特殊处理SDK业务逻辑抛出的错误-JSON string\n if (errMsg && /^\\{.*\\}$/.test(errMsg)) {\n const msg = JSON.parse(errMsg)\n logs.subtitle = msg\n if (msg.code) {\n if (innerErr) {\n innerErr.code = msg.code\n innerErr.message = msg.msg\n } else {\n err.code = msg.code\n err.message = msg.msg\n }\n failErr = innerErr || err\n logs.content = messages.map(msg => ({\n type: 'info',\n body: msg,\n }))\n }\n }\n\n // oauth 错误特殊处理\n if (error && errorDescription) {\n logs.subtitle = errorDescription\n if (innerErr) {\n innerErr.code = error\n innerErr.msg = errorDescription\n } else {\n err.code = error\n err.message = errorDescription\n }\n failErr = innerErr || err\n logs.content = messages.map(msg => ({\n type: 'info',\n body: msg,\n }))\n }\n printGroupLog(logs)\n throw failErr\n }\n }\n }\n }\n}\n\n/**\n * 在原始堆栈中查找装饰器条目并返回源码链接link\n * @param err\n */\nfunction getSourceLink(err: Error) {\n let sourceLink = ''\n const outterErrStacks = err.stack.split('\\n')\n const indexOfDecorator = outterErrStacks.findIndex(str => REG_STACK_DECORATE.test(str))\n\n if (indexOfDecorator !== -1) {\n const match = REG_STACK_LINK.exec(outterErrStacks[indexOfDecorator + 1] || '')\n\n sourceLink = match ? match[0] : ''\n }\n return sourceLink\n}\n\n/**\n * 在原始堆栈中查找装饰器条目,剔除其后的无用堆栈,并将链接替换为源码link\n * @param options\n */\nfunction getRewritedError(options: {\n err: Error;\n className: string;\n methodName: string;\n sourceLink: string;\n}) {\n const { err, className, methodName, sourceLink } = options\n // 找不到源码link返回null,后续逻辑将打印原堆栈信息\n if (!sourceLink) {\n return null\n }\n\n const innerErrStack = err.stack.split('\\n')\n const REG_STACK_INNER_METHOD = isFirefox\n ? /^catchErrorsDecorator\\/<\\/descriptor.value@.*\\d$/\n : new RegExp(`${className}\\\\.descriptor.value\\\\s*\\\\[as\\\\s${methodName}\\\\]\\\\s*\\\\(.*\\\\)$`)\n const REG_STACK_INNER_METHOD_WITHOUT_LINK = isFirefox\n ? /^catchErrorsDecorator\\/<\\/descriptor.value/\n : new RegExp(`${className}\\\\.descriptor.value\\\\s*\\\\[as\\\\s${methodName}\\\\]`)\n const indexOfSource = innerErrStack.findIndex(str => REG_STACK_INNER_METHOD.test(str))\n let innerErr: Error\n if (indexOfSource !== -1) {\n // @ts-ignore\n const realErrStack = innerErrStack.filter((v, i) => i > indexOfSource)\n realErrStack.unshift(innerErrStack[indexOfSource]\n .replace(REG_STACK_INNER_METHOD_WITHOUT_LINK, `${className}.${methodName}`)\n .replace(REG_STACK_LINK, sourceLink))\n innerErr = new Error()\n innerErr.stack = `${isFirefox ? '@debugger' : 'Error'}\\n${realErrStack.join('\\n')}`\n }\n return innerErr\n}\n","var x = y => { var x = {}; __webpack_require__.d(x, y); return x; }\nvar y = x => () => x\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => __WEBPACK_EXTERNAL_MODULE_jwt_decode_b659f100__[\"default\"] });","/* eslint-disable eqeqeq */\n/* eslint-disable @typescript-eslint/naming-convention */\nimport type { SDKRequestInterface } from '@cloudbase/adapter-interface'\nimport { Bot } from './bot'\nimport * as models from './models'\nimport * as types from './type'\nimport { readableStream2JsonObject } from './utils'\nimport { ICloudbaseConfig } from '@cloudbase/types'\nimport { langEvent } from '@cloudbase/utilities'\n\nconst { MODELS } = models\n\nclass AI {\n public aiBaseUrl: string\n public aiBotBaseUrl: string\n public bot: Bot\n public i18n: ICloudbaseConfig['i18n']\n defaultHeaders: { [x: string]: any }\n\n constructor(\n private req: SDKRequestInterface,\n public baseUrl: string,\n i18n: ICloudbaseConfig['i18n'],\n ) {\n this.aiBaseUrl = `${baseUrl}/ai`\n this.aiBotBaseUrl = `${baseUrl}/aibot`\n this.bot = new Bot(this.botRequest, this.aiBotBaseUrl)\n this.i18n = i18n\n\n langEvent.bus.on(langEvent.LANG_CHANGE_EVENT, (params) => {\n this.i18n = params.data?.i18n || this.i18n\n })\n }\n\n async handleResponseData(responseData: Promise<unknown> | ReadableStream<Uint8Array>, header?: Headers) {\n const GO_TO_AI_TEXT = `${this.i18n.t('请检查调用方式,或前往云开发 AI+ 首页查看文档')}:https://tcb.cloud.tencent.com/dev#/ai`\n\n if (typeof responseData === 'object' && responseData && 'then' in responseData) {\n // 非流式请求,直接返回 json 数据\n const json = (await responseData) as Record<string, unknown>\n if (typeof json === 'object' && json && 'code' in json && json.code !== 'NORMAL') {\n throw new Error(`${this.i18n.t('AI+ 请求出错,错误码')}:${json.code},${this.i18n.t('错误信息')}:${\n json.message\n }\\n${GO_TO_AI_TEXT}\\n${JSON.stringify(json, null, 2)}`,)\n }\n\n return responseData\n }\n // 流式请求,如果接口出错,会变成传 json 格式的响应,通过 header 判断格式\n if (header?.get?.('content-type')?.includes('application/json')) {\n const json = await readableStream2JsonObject(responseData as ReadableStream<Uint8Array>)\n if (typeof json === 'object' && json && 'code' in json && json.code !== 'NORMAL') {\n throw new Error(`${this.i18n.t('AI+ 请求出错,错误码')}:${json.code},${this.i18n.t('错误信息')}:${\n json.message\n }\\n${GO_TO_AI_TEXT}\\n${JSON.stringify(json, null, 2)}`,)\n }\n }\n return responseData\n }\n\n createModel(\n model: string,\n options?: {\n defaultModelSubUrl?: string\n },\n ) {\n let simpleModel: types.SimpleChatModel\n\n const SimpleModelConstructor = MODELS[model]\n if (SimpleModelConstructor) {\n simpleModel = new SimpleModelConstructor(this.modelRequest, this.aiBaseUrl)\n } else {\n const subUrl = typeof options?.defaultModelSubUrl === 'string' ? options.defaultModelSubUrl : '/chat/completions'\n\n simpleModel = new models.DefaultSimpleModel(this.modelRequest, this.aiBaseUrl, `${model}${subUrl}`)\n }\n\n const reactModel = new models.ReactModel(simpleModel)\n return reactModel\n }\n\n registerModel(name: string, model: types.ChatModelConstructor) {\n if (MODELS[name] != null) {\n console.warn(`AI model ${name} already exists!`)\n return\n }\n MODELS[name] = model\n }\n\n createImageModel<T extends 'hunyuan-image' | (string & {})>(provider: T) {\n return new models.DefaultImageModel<T>(this.modelRequest, this.aiBaseUrl, provider)\n }\n\n modelRequest: types.ModelReq = async ({ url, data, headers, stream, timeout }) => {\n const fetchHeaders = {\n 'Content-Type': 'application/json',\n }\n // 带 Accept: text/event-stream 请求头显式指定是 SSE 绕过 60s 的限制\n stream && Object.assign(fetchHeaders, { Accept: 'text/event-stream' })\n\n const { data: responseData, header } = (await this.req.fetch({\n method: 'post',\n headers: { [this.i18n?.LANG_HEADER_KEY]: this.i18n?.lang, ...fetchHeaders, ...headers },\n body: JSON.stringify(data),\n url,\n stream,\n timeout,\n })) as { data: Promise<unknown> | ReadableStream<Uint8Array>; header?: Headers }\n\n return this.handleResponseData(responseData, header) as any\n }\n\n botRequest: types.BotReq = async ({ method, url, data = {}, headers, stream, timeout }) => {\n if (method === 'get') {\n return this.handleResponseData((await this.req.fetch({ url: `${url}?${objectToParam(data)}`, method, headers, stream, timeout })).data,)\n }\n\n const fetchHeaders = {\n 'Content-Type': 'application/json',\n }\n // 带 Accept: text/event-stream 请求头显式指定是 SSE 绕过 60s 的限制\n stream && Object.assign(fetchHeaders, { Accept: 'text/event-stream' })\n\n const { data: responseData, header } = (await this.req.fetch({\n url,\n body: JSON.stringify(data),\n headers: {\n [this.i18n?.LANG_HEADER_KEY]: this.i18n?.lang,\n ...fetchHeaders,\n ...headers,\n },\n stream,\n method,\n timeout,\n })) as { data: Promise<unknown> | ReadableStream<Uint8Array>; header?: Headers }\n\n return this.handleResponseData(responseData, header) as any\n\n function objectToParam(obj: Object) {\n return Object.entries(obj)\n .map(([key, value]) => `${key}=${value}`)\n .join('&')\n }\n }\n\n registerFunctionTool(functionTool: types.FunctionTool) {\n if (models.toolMap.has(functionTool.name)) {\n console.warn(`AI function tool ${functionTool.name} already exists and will be overwritten!`)\n }\n models.toolMap.set(functionTool.name, functionTool.fn)\n }\n}\n\nexport { AI }\n","export abstract class SimpleChatModel {\n public abstract doGenerate(data: BaseChatModelInput, options?: ReqOptions): Promise<DoGenerateOutput>\n\n public abstract doStream(data: BaseChatModelInput, options?: ReqOptions): Promise<DoStreamOutput>\n}\n\ntype RawResponse = { rawResponse?: any }\n\nexport type DoGenerateOutput = BaseDoGenerateOutput & RawResponse\n\nexport type DoStreamOutput = AsyncIterableReadableStream<BaseDoStreamOutputChunk & RawResponse>\n\nexport type ChatModelConstructor = typeof SimpleChatModel\n\nexport type AsyncIterableReadableStream<T> = ReadableStream<T> & {\n [Symbol.asyncIterator]: () => { next(): Promise<IteratorResult<T>> }\n}\n\nexport interface IModelReqInput {\n url: string\n headers?: Record<string, string>\n data?: Object\n stream?: boolean\n timeout?: number\n}\n\nexport type ModelReq = <T extends IModelReqInput>(\n props: T,\n) => T['stream'] extends true ? Promise<ReadableStream<Uint8Array>> : Promise<Object>\n\nexport interface IBotReqInput {\n url: string\n method: string\n headers?: Record<string, string>\n data?: Object\n stream?: boolean\n timeout?: number\n}\n\nexport interface ReqOptions {\n timeout?: number\n}\n\nexport type BotReq = <T extends IBotReqInput>(\n props: T,\n) => T['stream'] extends true ? Promise<ReadableStream<Uint8Array>> : Promise<Object>\n\nexport type UserMessage = {\n role: 'user'\n content: string\n}\n\nexport type SystemMessage = {\n role: 'system'\n content: string\n}\n\nexport type AssistantMessage = PlainAssistantMessage | ToolCallAssistantMessage\n\nexport type PlainAssistantMessage = {\n role: 'assistant'\n content: string\n}\n\nexport type ToolCallAssistantMessage = {\n role: 'assistant'\n tool_calls: Array<ToolCall>\n content?: string\n}\n\nexport type ToolMessage = {\n role: 'tool'\n tool_call_id: string\n content: string\n}\n\nexport type ChatModelMessage = UserMessage | SystemMessage | AssistantMessage | ToolMessage\n\nexport type FunctionTool = {\n name: string\n description: string\n fn: CallableFunction\n parameters: object\n}\n\n// #region 大模型标准输入类型\nexport interface BaseChatModelInput {\n model: string\n messages: Array<ChatModelMessage>\n temperature?: number\n top_p?: number\n tools?: Array<ModelTool>\n tool_choice?: 'none' | 'auto' | 'custom'\n}\n\n/**\n * 给 LLM 发请求时要传的工具\n */\nexport type ModelTool = {\n type: string\n function: ModelToolFunction\n}\n\n/**\n * 给 LLM 发请求时要传的工具函数\n */\nexport type ModelToolFunction = {\n name: string\n description: string\n /**\n * 描述函数参数的 JSON Schema\n */\n parameters: object\n}\n// #endregion\n\n// #region 大模型标准响应类型\nexport type ToolCall = {\n id: string\n type: string\n function: { name: string; arguments: string }\n}\n\ntype FinishReason = 'tool_calls' | (string & {})\n\nexport type Usage = {\n completion_tokens: number\n prompt_tokens: number\n total_tokens: number\n}\n\nexport interface BaseDoGenerateOutput {\n choices?: Array<{\n finish_reason?: FinishReason\n message?: ChatModelMessage\n }>\n usage?: Usage\n}\n\nexport interface BaseDoStreamOutputChunk {\n choices?: Array<{\n finish_reason?: FinishReason\n delta?: ChatModelMessage\n }>\n usage?: Usage\n}\n// #endregion\n\n// #region Image Model Types\n/**\n * 图片生成输入参数\n */\nexport interface ImageGenerateInput {\n model: string // 模型名称,例如 'hunyuan-image'、'dall-e-3'\n prompt: string // 用于描述要生成的图片内容\n size?: string // 尺寸\n n?: number // 张数\n [key: string]: unknown // 允许额外的厂商特定参数\n}\n\n/**\n * 图片编辑输入参数\n */\nexport interface ImageEditInput {\n model: string\n prompt: string\n size?: string // 尺寸\n n?: number // 张数\n [key: string]: unknown // 允许额外的厂商特定参数\n}\n\nexport interface HunyuanGenerateImageInput {\n model: 'hunyuan-image'\n /** 用来生成图像的文本描述 */\n prompt: string\n /**\n * 模型版本,支持 v1.8.1 和 v1.9,默认版本 v1.8.1\n * - v1.8.1: 采用二阶段模型支持文生图任务,针对图像细节、稳定性等要求高的任务较为合适\n * - v1.9: 采用模型矩阵能力支持文生图任务,后端由人像、游戏、通用模型,以及各类功能插件组成,灵活适配多种文生图任务\n */\n version?: 'v1.8.1' | 'v1.9' | (string & {})\n /**\n * 图片尺寸,默认 \"1024x1024\"\n * v1.9 仅支持以下几个尺寸:\n * - 1024x1024\n * - 1024x768, 1152x864\n * - 768x1024, 864x1152\n * - 1280x768 (16:9)\n * - 768x1280 (9:16)\n * - 1280x720 (16:9)\n * - 720x1280 (9:16)\n *\n * 支持用户自定义尺寸,但输入尺寸只支持 768-1280 之间且为 64 的倍数的数字\n */\n size?: string\n /**\n * 仅 v1.9 支持,负向词\n * 如果不传则使用各个模型内部的默认负向词\n */\n negative_prompt?: string\n /**\n * 仅 v1.9 支持,可指定风格:\n * - 古风二次元风格\n * - 都市二次元风格\n * - 悬疑风格\n * - 校园风格\n * - 都市异能风格\n */\n style?: '古风二次元风格' | '都市二次元风格' | '悬疑风格' | '校园风格' | '都市异能风格' | (string & {})\n /**\n * 为 true 时对 prompt 进行改写,实际生成的图片会使用改写后的 prompt 进行生成\n * 多数场景可提升生成的图片效果,默认为 true\n */\n revise?: boolean\n /**\n * 生成图片个数,默认为 1\n * 目前只支持生成一张,固定为 1,传其他的值会报错\n */\n n?: number\n /**\n * 业务自定义水印内容\n * 限制 16 个字符长度(不区分中英文),生成在图片右下角\n */\n footnote?: string\n /**\n * 生成种子,仅当生成图片数为 1 时生效\n * 范围 [1, 4294967295],不传时默认随机\n */\n seed?: number\n}\n\nexport interface HunyuanARGenerateImageInput {\n /** 模型名称:hunyuan-image-v3.0-v1.0.4(推荐)或 hunyuan-image-v3.0-v1.0.1 */\n model: 'hunyuan-image-v3.0-v1.0.4' | 'hunyuan-image-v3.0-v1.0.1'\n /** 生成图片使用的文本,不超过 8192 字符 */\n prompt: string\n /**\n * 图片尺寸,格式 \"${宽}x${高}\",默认 \"1024x1024\"\n * hunyuan-image-v3.0-v1.0.4:宽高 [512, 2048],面积不超过 1024x1024\n * hunyuan-image-v3.0-v1.0.1:支持固定尺寸列表\n */\n size?: string\n /** 生成种子,仅当生成图片数为 1 时生效,范围 [1, 4294967295] */\n seed?: number\n /** 业务自定义水印内容,限制 16 字符,生成在图片右下角 */\n footnote?: string\n /** 是否对 prompt 改写,默认开启。改写会增加约 30s 耗时 */\n revise?: { value: boolean }\n /** 改写是否开启 thinking 模式,默认开启。开启后效果提升但耗时增加(最大 60s) */\n enable_thinking?: { value: boolean }\n}\n\nexport interface HunyuanARGenerateImageOutput {\n /** 此次请求的 id */\n id: string\n /** unix 时间戳 */\n created: number\n /** 返回的图片生成内容 */\n data: Array<{\n /** 生成的图片 url,有效期 24 小时 */\n url: string\n /** 改写后的 prompt */\n revised_prompt?: string\n }>\n}\n\nexport type HunyuanEditImageInput = {\n /** 模型名称,本期为 hunyuan-image,即为商品图编辑场景 */\n model: 'hunyuan-image' | (string & {})\n /** 编辑的文本描述 */\n prompt: string\n /** 模型版本 */\n version?: string\n /**\n * 图片尺寸,默认 \"800x800\"\n * 支持用户自定义尺寸,但输入尺寸只支持 512-1280 之间\n * 目前只支持 1:1、16:9、9:16 三个尺寸\n */\n size?: string\n /**\n * 生成图片个数,默认为 1\n * 目前只支持生成一张,固定为 1,传其他的值会报错\n */\n n?: number\n /**\n * beta 参数,随机种子\n * 范围 [1, 4294967295],不传时默认随机\n */\n seed?: number\n /**\n * 业务自定义角标内容\n * 限制 16 个字符长度(不区分中英文)\n */\n footnote?: string\n /**\n * 图 base64 编码,大小不超过 6M\n * 支持 jpg/jpeg 格式,和 image_url 二选一\n * 长短边比例要求 2:1 内\n */\n image?: string\n /**\n * 图片 url\n * 长短边比例要求 2:1 内,和 image 二选一\n */\n image_url?: string\n} & (\n | {\n mask: string\n mask_url?: never\n }\n | {\n mask?: never\n mask_url: string\n }\n)\n\n/**\n * 混元图片生成输出\n */\nexport interface HunyuanGenerateImageOutput {\n /** 此次请求的 id */\n id: string\n /** unix 时间戳 */\n created: number\n /** 返回的图片生成内容 */\n data: Array<{\n /** 生成的图片 url,有效期为 24 小时 */\n url: string\n /** 原 prompt 改写后的文本。若 revise 为 false,则为原 prompt */\n revised_prompt?: string\n }>\n}\n\n/**\n * 混元图片编辑输出\n */\nexport interface HunyuanEditImageOutput {\n /** 此次请求的 id */\n id: string\n /** unix 时间戳 */\n created: number\n /** 返回的图片生成内容 */\n data: Array<{\n /** 生成的图片 url,有效期为 24 小时 */\n url: string\n }>\n}\n\n// #endregion\n"],"names":["__webpack_require__","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","y","__WEBPACK_EXTERNAL_MODULE_web_streams_polyfill_c4c9f3ad__","ReadableStream","TransformStream","x","d","__WEBPACK_EXTERNAL_MODULE__mattiasbuelens_web_streams_adapter_7d231298__","createReadableStreamWrapper","BOM","__WEBPACK_EXTERNAL_MODULE_text_encoding_shim_6f8fb6d2__","TextDecoder","_ReadableStream","_TransformStream","createEventSourceParserTransformStream","parser","start","controller","onParse","isFirstChunk","buffer","startingPosition","startingFieldLength","eventId","eventName","data","reset","feed","chunk","every","charCode","index","charCodeAt","hasBom","slice","length","position","discardTrailingNewline","lineLength","fieldLength","character","parseEventStreamLine","undefined","lineBuffer","type","id","event","step","noValue","field","valueLength","toString","concat","includes","retry","parseInt","Number","isNaN","createParser","enqueue","transform","toPolyfillReadable","TextDecoderStream","encoding","options","_this","handle","decode","Uint8Array","stream","flush","terminate","this","fatal","ignoreBOM","readable","writable","createAsyncIterable","_stream","asyncIterator","reader","getReader","next","Promise","read","_a","_b","sent","done","intoStandardStream","pipeThrough","JSON","parse","e","console","warn","intoTextStream","readableStream2JsonObject","s","total","s_1","__asyncValues","_c","s_1_1","_d","createPromise","res","rej","promise","resolve","reject","isToolCallAssistantMessage","message","role","tool_calls","functionToolToModelTool","tool","function","description","name","parameters","Bot","req","baseUrl","token","arguments","headers","rest","__rest","__assign","Authorization","list","props","method","url","join","timeout","create","botInfo","botId","update","delete","getChatRecords","sendFeedback","userFeedback","getFeedback","uploadFiles","createConversation","getConversation","pageSize","pageNumber","Error","offset","limit","deleteConversation","conversationId","speechToText","textToSpeech","getTextToSpeechResult","getRecommendQuestions","StreamResult","generateBot","getPreview","generateImage","sendMessage","_eventSourceStream","tee","s1","s2","teeedStream","eventSourceStream","dataStream","content","processInput","input","messages","model","temperature","tool_choice","tools","top_p","ZhiPuSimpleModel","subUrl","doGenerate","_data","rawResponse","doStream","isToolCall","newChoices","choices","map","choice","delta","finish_reason","newChunk","forEach","filter","tool_call","handleTools","titleCaseToSnakeCase","Array","isArray","item","entries","reduce","acc","ret","replace","match","toLowerCase","charAt","HunYuanBetaSimpleModel","HunYuanSimpleModel","output","Response","_chunk","ArkSimpleModel","DSSimpleModel","assign","YiSimpleModel","arkStream","streamWithRaw","_f","_e","MoonshotSimpleModel","HunYuanExpSimpleModel","HunYuanOpenSimpleModel","DeepSeekSimpleModel","DefaultSimpleModel","DefaultImageModel","provider","defaultGenerateImageSubUrl","generateImageSubUrlConfig","generateImageImpl","bind","newSubUrl","getGenerateUrl","onStepFinish","abortSignal","maxSteps","topP","toolChoice","b","ReactModel","generateText","_input","rawResponses","totalUsage","completion_tokens","prompt_tokens","total_tokens","currentRes","currentStep","push","toolCall","getToolCallFromGenerate","stepUsage_1","createSolidUsage","usage","addToUsage","callTool","toolCallResult","finishReason","text","toolResult","stepUsage","pushNewMessages","error","e_1","lastChoice","lastMessage","__spreadArray","streamText","_j","readResult","readCurrentStream","oldStream","newStream","aStream","retMessage","retToolCall","aStream_1","aStream_1_1","_k","_g","_h","readFunctionCallStream","assistantMessage","stepUsage_2","s1_1","s2_1","textStream","str","e_2","message_1","s1_2","s2_2","messagePromise","usagePromise","originStream","reason","tool_call_id","stringify","toolMap","Map","targetUsage","sourceUsage","MODELS","hunyuan","ark","dashscope","moonshot","zhipu","deepseek","sdkName","getSdkName","ERRORS","__WEBPACK_EXTERNAL_MODULE__cloudbase_adapter_interface_74717cc6__","AbstractSDKRequest","AbstractStorage","printWarn","msg","RUNTIME","_super","WebRequest","config","timeoutMsg","restrictedMethods","__extends","request","post","put","upload","file","reqMethod","formData","FormData","keys","append","body","download","responseType","window","URL","createObjectURL","Blob","fileName","decodeURIComponent","pathname","split","pop","link","document","createElement","href","setAttribute","style","display","appendChild","click","revokeObjectURL","removeChild","statusCode","tempFilePath","fetch","abortController","AbortController","enableAbort","signal","_timeout","shouldThrowOnError","aborted","abort","addEventListener","timer","setTimeout","then","response","__awaiter","clearTimeout","ok","json","apply","catch","status","header","String","payload","val","withCredentials","onUploadProgress","realUrl","PROTOCOL","query","urlHasQuery","test","queryString","encodeURIComponent","formatUrl","ajax","XMLHttpRequest","open","setRequestHeader","onreadystatechange","result","readyState","arr","getAllResponseHeaders","trim","headerMap_1","line","parts","shift","responseText","toQueryString","send","TcbCacheObject","root","tcbCacheObject","setItem","getItem","removeItem","clear","CloudbaseCache","persistence","platformInfo","storage","persistenceTag","adapter","primaryStorage","localStorage","createStorage","mode","setStore","version","code","info","setStoreAsync","getStore","process","tcb_token","indexOf","getStoreAsync","removeStore","removeStoreAsync","CloudbaseEvent","IErrorEvent","CloudbaseEventEmitter","listeners","on","listener","customeAddEventListener","off","splice","customRemoveEventListener","fire","ev","listens","target","_i","handlers_1","bus","navigator","userAgent","__WEBPACK_EXTERNAL_MODULE_jwt_decode_b659f100__","jwtDecode","models","AI","i18n","modelRequest","fetchHeaders","Accept","LANG_HEADER_KEY","lang","responseData","handleResponseData","botRequest","aiBaseUrl","aiBotBaseUrl","bot","langEvent","params","GO_TO_AI_TEXT","t","createModel","simpleModel","SimpleModelConstructor","defaultModelSubUrl","registerModel","createImageModel","registerFunctionTool","functionTool","fn","SimpleChatModel","restModels","createRequestInstanceWithAccessTokenHeader","getAccessToken","restOptions","accessToken","createAI","env","handleReqInstance","getReq","getBaseUrl","createAi","component","entity","ai","getEndPointWithKey","BASE_URL","getUrlFromCloud","registerAi","app","registerComponent"],"sourceRoot":""}
|