UNPKG

@langchain/core

Version:
1 lines 5.35 kB
{"version":3,"file":"chat.cjs","names":["BaseMessage","fields:\n | $InferMessageContent<TStructure, \"generic\">\n | ChatMessageFields<TStructure>","role?: string","obj: unknown","BaseMessageChunk","chunk: ChatMessageChunk<TStructure>","mergeContent","_mergeDicts","x: BaseMessage","x: BaseMessageChunk"],"sources":["../../src/messages/chat.ts"],"sourcesContent":["import {\n BaseMessage,\n BaseMessageChunk,\n type BaseMessageFields,\n mergeContent,\n _mergeDicts,\n} from \"./base.js\";\nimport { $InferMessageContent, MessageStructure } from \"./message.js\";\nimport { Constructor } from \"./utils.js\";\n\nexport interface ChatMessageFields<\n TStructure extends MessageStructure = MessageStructure\n> extends BaseMessageFields<TStructure, \"generic\"> {\n role: string;\n}\n\n/**\n * Represents a chat message in a conversation.\n */\nexport class ChatMessage<TStructure extends MessageStructure = MessageStructure>\n extends BaseMessage<TStructure, \"generic\">\n implements ChatMessageFields<TStructure>\n{\n static lc_name() {\n return \"ChatMessage\";\n }\n\n readonly type = \"generic\" as const;\n\n role: string;\n\n static _chatMessageClass(): typeof ChatMessage {\n return ChatMessage;\n }\n\n constructor(\n content: $InferMessageContent<TStructure, \"generic\">,\n role: string\n );\n\n constructor(fields: ChatMessageFields<TStructure>);\n\n constructor(\n fields:\n | $InferMessageContent<TStructure, \"generic\">\n | ChatMessageFields<TStructure>,\n role?: string\n ) {\n if (typeof fields === \"string\" || Array.isArray(fields)) {\n // eslint-disable-next-line no-param-reassign, @typescript-eslint/no-non-null-assertion\n fields = { content: fields, role: role! };\n }\n super(fields);\n this.role = fields.role;\n }\n\n static isInstance(obj: unknown): obj is ChatMessage {\n return super.isInstance(obj) && obj.type === \"generic\";\n }\n\n override get _printableFields(): Record<string, unknown> {\n return {\n ...super._printableFields,\n role: this.role,\n };\n }\n}\n\n/**\n * Represents a chunk of a chat message, which can be concatenated with\n * other chat message chunks.\n */\nexport class ChatMessageChunk<\n TStructure extends MessageStructure = MessageStructure\n> extends BaseMessageChunk<TStructure, \"generic\"> {\n static lc_name() {\n return \"ChatMessageChunk\";\n }\n\n readonly type = \"generic\" as const;\n\n role: string;\n\n constructor(\n content: $InferMessageContent<TStructure, \"generic\">,\n role: string\n );\n\n constructor(fields: ChatMessageFields<TStructure>);\n\n constructor(\n fields:\n | $InferMessageContent<TStructure, \"generic\">\n | ChatMessageFields<TStructure>,\n role?: string\n ) {\n if (typeof fields === \"string\" || Array.isArray(fields)) {\n // eslint-disable-next-line no-param-reassign, @typescript-eslint/no-non-null-assertion\n fields = { content: fields, role: role! };\n }\n super(fields);\n this.role = fields.role;\n }\n\n concat(chunk: ChatMessageChunk<TStructure>) {\n const Cls = this.constructor as Constructor<this>;\n return new Cls({\n content: mergeContent(this.content, chunk.content),\n additional_kwargs: _mergeDicts(\n this.additional_kwargs,\n chunk.additional_kwargs\n ),\n response_metadata: _mergeDicts(\n this.response_metadata,\n chunk.response_metadata\n ),\n role: this.role,\n id: this.id ?? chunk.id,\n });\n }\n\n static isInstance(obj: unknown): obj is ChatMessageChunk {\n return super.isInstance(obj) && obj.type === \"generic\";\n }\n\n override get _printableFields(): Record<string, unknown> {\n return {\n ...super._printableFields,\n role: this.role,\n };\n }\n}\n\n/**\n * @deprecated Use {@link ChatMessage.isInstance} instead\n */\nexport function isChatMessage(x: BaseMessage): x is ChatMessage {\n return x._getType() === \"generic\";\n}\n\n/**\n * @deprecated Use {@link ChatMessageChunk.isInstance} instead\n */\nexport function isChatMessageChunk(x: BaseMessageChunk): x is ChatMessageChunk {\n return x._getType() === \"generic\";\n}\n"],"mappings":";;;;;;AAmBA,IAAa,cAAb,MAAa,oBACHA,yBAEV;CACE,OAAO,UAAU;AACf,SAAO;CACR;CAED,AAAS,OAAO;CAEhB;CAEA,OAAO,oBAAwC;AAC7C,SAAO;CACR;CASD,YACEC,QAGAC,MACA;AACA,MAAI,OAAO,WAAW,YAAY,MAAM,QAAQ,OAAO,EAErD,SAAS;GAAE,SAAS;GAAc;EAAO;EAE3C,MAAM,OAAO;EACb,KAAK,OAAO,OAAO;CACpB;CAED,OAAO,WAAWC,KAAkC;AAClD,SAAO,MAAM,WAAW,IAAI,IAAI,IAAI,SAAS;CAC9C;CAED,IAAa,mBAA4C;AACvD,SAAO;GACL,GAAG,MAAM;GACT,MAAM,KAAK;EACZ;CACF;AACF;;;;;AAMD,IAAa,mBAAb,cAEUC,8BAAwC;CAChD,OAAO,UAAU;AACf,SAAO;CACR;CAED,AAAS,OAAO;CAEhB;CASA,YACEH,QAGAC,MACA;AACA,MAAI,OAAO,WAAW,YAAY,MAAM,QAAQ,OAAO,EAErD,SAAS;GAAE,SAAS;GAAc;EAAO;EAE3C,MAAM,OAAO;EACb,KAAK,OAAO,OAAO;CACpB;CAED,OAAOG,OAAqC;EAC1C,MAAM,MAAM,KAAK;AACjB,SAAO,IAAI,IAAI;GACb,SAASC,0BAAa,KAAK,SAAS,MAAM,QAAQ;GAClD,mBAAmBC,yBACjB,KAAK,mBACL,MAAM,kBACP;GACD,mBAAmBA,yBACjB,KAAK,mBACL,MAAM,kBACP;GACD,MAAM,KAAK;GACX,IAAI,KAAK,MAAM,MAAM;EACtB;CACF;CAED,OAAO,WAAWJ,KAAuC;AACvD,SAAO,MAAM,WAAW,IAAI,IAAI,IAAI,SAAS;CAC9C;CAED,IAAa,mBAA4C;AACvD,SAAO;GACL,GAAG,MAAM;GACT,MAAM,KAAK;EACZ;CACF;AACF;;;;AAKD,SAAgB,cAAcK,GAAkC;AAC9D,QAAO,EAAE,UAAU,KAAK;AACzB;;;;AAKD,SAAgB,mBAAmBC,GAA4C;AAC7E,QAAO,EAAE,UAAU,KAAK;AACzB"}