@langchain/core
Version:
Core LangChain.js abstractions and schemas
275 lines (273 loc) • 9.72 kB
text/typescript
import { BaseContentBlock } from "./base.cjs";
//#region src/messages/content/data.d.ts
/**
* @deprecated
* Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.
*/
type ImageDetail = "auto" | "low" | "high";
/**
* @deprecated
* Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.
*/
type MessageContentText = {
type: "text";
text: string;
};
/**
* @deprecated
* Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.
*/
type MessageContentImageUrl = {
type: "image_url";
image_url: string | {
url: string;
detail?: ImageDetail;
};
};
/**
* @deprecated
* Use {@link ContentBlock} instead.
*/
type MessageContentComplex = MessageContentText | MessageContentImageUrl | (Record<string, any> & {
type?: "text" | "image_url" | string;
}) | (Record<string, any> & {
type?: never;
});
type Data = never;
declare namespace Data {
/**
* @deprecated
* Use {@link ContentBlock.Multimodal.Data} instead
*/
interface BaseDataContentBlock extends BaseContentBlock {
mime_type?: string;
metadata?: Record<string, unknown>;
}
/**
* @deprecated
* Use {@link ContentBlock.Multimodal.Data} instead
*/
interface URLContentBlock extends BaseDataContentBlock {
type: "image" | "audio" | "file";
source_type: "url";
url: string;
}
/**
* @deprecated
* Use {@link ContentBlock.Multimodal.Data} instead
*/
interface Base64ContentBlock extends BaseDataContentBlock {
type: "image" | "audio" | "file";
source_type: "base64";
data: string;
}
/**
* @deprecated
* Use {@link ContentBlock.Multimodal.Data} instead
*/
interface PlainTextContentBlock extends BaseDataContentBlock {
type: "file" | "text";
source_type: "text";
text: string;
}
/**
* @deprecated
* Use {@link ContentBlock.Multimodal.Data} instead
*/
interface IDContentBlock extends BaseDataContentBlock {
type: "image" | "audio" | "file";
source_type: "id";
id: string;
}
/**
* @deprecated
* Use {@link ContentBlock.Multimodal.Standard} instead
*/
type DataContentBlock = URLContentBlock | Base64ContentBlock | PlainTextContentBlock | IDContentBlock;
/**
* @deprecated
* Use {@link ContentBlock.Multimodal.Standard} instead
*/
type StandardImageBlock = (URLContentBlock | Base64ContentBlock | IDContentBlock) & {
type: "image";
};
/**
* @deprecated
* Use {@link ContentBlock.Multimodal.Standard} instead
*/
type StandardAudioBlock = (URLContentBlock | Base64ContentBlock | IDContentBlock) & {
type: "audio";
};
/**
* @deprecated
* Use {@link ContentBlock.Multimodal.Standard} instead
*/
type StandardFileBlock = (URLContentBlock | Base64ContentBlock | IDContentBlock | PlainTextContentBlock) & {
type: "file";
};
/**
* @deprecated
* Use {@link ContentBlock.Multimodal.Standard} instead
*/
type StandardTextBlock = PlainTextContentBlock & {
type: "text";
};
/**
* @deprecated
* Use {@link ContentBlock.Multimodal.Data} instead
*/
type DataContentBlockType = DataContentBlock["type"];
}
/**
* @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.
*/
declare function isDataContentBlock(content_block: object): content_block is Data.DataContentBlock;
/**
* @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.
*/
declare function isURLContentBlock(content_block: object): content_block is Data.URLContentBlock;
/**
* @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.
*/
declare function isBase64ContentBlock(content_block: object): content_block is Data.Base64ContentBlock;
/**
* @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.
*/
declare function isPlainTextContentBlock(content_block: object): content_block is Data.PlainTextContentBlock;
/**
* @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.
*/
declare function isIDContentBlock(content_block: object): content_block is Data.IDContentBlock;
/**
* @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.
*/
declare function convertToOpenAIImageBlock(content_block: Data.URLContentBlock | Data.Base64ContentBlock): {
type: string;
image_url: {
url: string;
};
};
/**
* Utility function for ChatModelProviders. Parses a mime type into a type, subtype, and parameters.
*
* @param mime_type - The mime type to parse.
* @returns An object containing the type, subtype, and parameters.
*
* @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.
*/
declare function parseMimeType(mime_type: string): {
type: string;
subtype: string;
parameters: Record<string, string>;
};
/**
* Utility function for ChatModelProviders. Parses a base64 data URL into a typed array or string.
*
* @param dataUrl - The base64 data URL to parse.
* @param asTypedArray - Whether to return the data as a typed array.
* @returns An object containing the parsed data and mime type, or undefined if the data URL is invalid.
*
* @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.
*/
declare function parseBase64DataUrl({
dataUrl,
asTypedArray
}: {
dataUrl: string;
asTypedArray: true;
}): {
data: Uint8Array;
mime_type: string;
} | undefined;
/**
* Utility function for ChatModelProviders. Parses a base64 data URL into a typed array or string.
*
* @param dataUrl - The base64 data URL to parse.
* @param asTypedArray - Whether to return the data as a typed array.
* @returns The parsed data and mime type, or undefined if the data URL is invalid.
*
* @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.
*/
declare function parseBase64DataUrl({
dataUrl,
asTypedArray
}: {
dataUrl: string;
asTypedArray?: false;
}): {
data: string;
mime_type: string;
} | undefined;
/**
* A bag of provider-specific content block types.
*
* Allows implementations of {@link StandardContentBlockConverter} and related to be defined only in
* terms of the types they support. Also allows for forward compatibility as the set of known
* standard types grows, as the set of types can be extended without breaking existing
* implementations of the aforementioned interfaces.
*
* @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.
*/
type ProviderFormatTypes<TextFormat = unknown, ImageFormat = unknown, AudioFormat = unknown, FileFormat = unknown, VideoFormat = unknown> = {
text: TextFormat;
image: ImageFormat;
audio: AudioFormat;
file: FileFormat;
video: VideoFormat;
};
/**
* Utility interface for converting between standard and provider-specific data content blocks, to be
* used when implementing chat model providers.
*
* Meant to be used with {@link convertToProviderContentBlock} and
* {@link convertToStandardContentBlock} rather than being consumed directly.
*
* @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.
*/
interface StandardContentBlockConverter<Formats extends Partial<ProviderFormatTypes>> {
/**
* The name of the provider type that corresponds to the provider-specific content block types
* that this converter supports.
*/
providerName: string;
/**
* Convert from a standard image block to a provider's proprietary image block format.
* @param block - The standard image block to convert.
* @returns The provider image block.
*/
fromStandardImageBlock?(block: Data.StandardImageBlock): Formats["image"];
/**
* Convert from a standard audio block to a provider's proprietary audio block format.
* @param block - The standard audio block to convert.
* @returns The provider audio block.
*/
fromStandardAudioBlock?(block: Data.StandardAudioBlock): Formats["audio"];
/**
* Convert from a standard file block to a provider's proprietary file block format.
* @param block - The standard file block to convert.
* @returns The provider file block.
*/
fromStandardFileBlock?(block: Data.StandardFileBlock): Formats["file"];
/**
* Convert from a standard text block to a provider's proprietary text block format.
* @param block - The standard text block to convert.
* @returns The provider text block.
*/
fromStandardTextBlock?(block: Data.StandardTextBlock): Formats["text"];
}
/**
* Convert from a standard data content block to a provider's proprietary data content block format.
*
* Don't override this method. Instead, override the more specific conversion methods and use this
* method unmodified.
*
* @param block - The standard data content block to convert.
* @returns The provider data content block.
* @throws An error if the standard data content block type is not supported.
*
* @deprecated Don't use data content blocks. Use {@link ContentBlock.Multimodal.Data} instead.
*/
declare function convertToProviderContentBlock<Formats extends Partial<ProviderFormatTypes>>(block: Data.DataContentBlock, converter: StandardContentBlockConverter<Formats>): Formats[keyof Formats];
//#endregion
export { Data, ImageDetail, MessageContentComplex, MessageContentImageUrl, MessageContentText, ProviderFormatTypes, StandardContentBlockConverter, convertToOpenAIImageBlock, convertToProviderContentBlock, isBase64ContentBlock, isDataContentBlock, isIDContentBlock, isPlainTextContentBlock, isURLContentBlock, parseBase64DataUrl, parseMimeType };
//# sourceMappingURL=data.d.cts.map