This repository has been archived on 2026-03-06. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
openclaw-extensions/wecom/node_modules/@mistralai/mistralai/extra/structChat.js
T

60 lines
2.4 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.transformToChatCompletionRequest = transformToChatCompletionRequest;
exports.convertToParsedChatCompletionResponse = convertToParsedChatCompletionResponse;
exports.responseFormatFromZodObject = responseFormatFromZodObject;
const zod_to_json_schema_1 = require("zod-to-json-schema");
function transformToChatCompletionRequest(parsedRequest) {
const { responseFormat, ...rest } = parsedRequest;
// Transform responseFormat from z.ZodType to ResponseFormat
const transformedResponseFormat = responseFormatFromZodObject(responseFormat);
return {
...rest,
responseFormat: transformedResponseFormat,
};
}
function convertToParsedChatCompletionResponse(response, responseFormat) {
if (response.choices === undefined || response.choices.length === 0) {
return {
...response,
choices: response.choices === undefined ? undefined : [],
};
}
const parsedChoices = [];
for (const _choice of response.choices) {
if (_choice.message === null || typeof _choice.message === 'undefined') {
parsedChoices.push({ ..._choice, message: undefined });
}
else {
if (_choice.message.content !== null && typeof _choice.message.content !== 'undefined' && !Array.isArray(_choice.message.content)) {
parsedChoices.push({
..._choice,
message: {
..._choice.message,
parsed: responseFormat.safeParse(JSON.parse(_choice.message.content)).data,
}
});
}
}
}
return {
...response,
choices: parsedChoices,
};
}
// Function to convert Zod schema to strict JSON schema
function responseFormatFromZodObject(responseFormat) {
const responseJsonSchema = (0, zod_to_json_schema_1.zodToJsonSchema)(responseFormat);
// It is not possible to get the variable name of a Zod object at runtime in TypeScript so we're using a placeholder name.
// This has not impact on the parsing as the initial Zod object is used to parse the response.
const placeholderName = "placeholderName";
return {
type: "json_schema",
jsonSchema: {
name: placeholderName,
schemaDefinition: responseJsonSchema,
strict: true,
},
};
}
//# sourceMappingURL=structChat.js.map