@langchain/core
Version:
Core LangChain.js abstractions and schemas
1 lines • 2.96 kB
Source Map (JSON)
{"version":3,"file":"function.cjs","names":["BaseMessage","fields: FunctionMessageFields<TStructure>","BaseMessageChunk","chunk: FunctionMessageChunk<TStructure>","mergeContent","_mergeDicts","x: BaseMessage","x: BaseMessageChunk"],"sources":["../../src/messages/function.ts"],"sourcesContent":["import {\n BaseMessage,\n BaseMessageChunk,\n type BaseMessageFields,\n mergeContent,\n _mergeDicts,\n} from \"./base.js\";\nimport { MessageStructure } from \"./message.js\";\nimport { Constructor } from \"./utils.js\";\n\nexport interface FunctionMessageFields<\n TStructure extends MessageStructure = MessageStructure\n> extends BaseMessageFields<TStructure, \"function\"> {\n name: string;\n}\n\n/**\n * Represents a function message in a conversation.\n */\nexport class FunctionMessage<\n TStructure extends MessageStructure = MessageStructure\n >\n extends BaseMessage<TStructure, \"function\">\n implements FunctionMessageFields<TStructure>\n{\n static lc_name() {\n return \"FunctionMessage\";\n }\n\n readonly type = \"function\" as const;\n\n name: string;\n\n constructor(fields: FunctionMessageFields<TStructure>) {\n super(fields);\n this.name = fields.name;\n }\n}\n\n/**\n * Represents a chunk of a function message, which can be concatenated\n * with other function message chunks.\n */\nexport class FunctionMessageChunk<\n TStructure extends MessageStructure = MessageStructure\n> extends BaseMessageChunk<TStructure, \"function\"> {\n static lc_name() {\n return \"FunctionMessageChunk\";\n }\n\n readonly type = \"function\" as const;\n\n concat(chunk: FunctionMessageChunk<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 name: this.name ?? \"\",\n id: this.id ?? chunk.id,\n });\n }\n}\n\nexport function isFunctionMessage(x: BaseMessage): x is FunctionMessage {\n return x._getType() === \"function\";\n}\n\nexport function isFunctionMessageChunk(\n x: BaseMessageChunk\n): x is FunctionMessageChunk {\n return x._getType() === \"function\";\n}\n"],"mappings":";;;;;;AAmBA,IAAa,kBAAb,cAGUA,yBAEV;CACE,OAAO,UAAU;AACf,SAAO;CACR;CAED,AAAS,OAAO;CAEhB;CAEA,YAAYC,QAA2C;EACrD,MAAM,OAAO;EACb,KAAK,OAAO,OAAO;CACpB;AACF;;;;;AAMD,IAAa,uBAAb,cAEUC,8BAAyC;CACjD,OAAO,UAAU;AACf,SAAO;CACR;CAED,AAAS,OAAO;CAEhB,OAAOC,OAAyC;EAC9C,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,QAAQ;GACnB,IAAI,KAAK,MAAM,MAAM;EACtB;CACF;AACF;AAED,SAAgB,kBAAkBC,GAAsC;AACtE,QAAO,EAAE,UAAU,KAAK;AACzB;AAED,SAAgB,uBACdC,GAC2B;AAC3B,QAAO,EAAE,UAAU,KAAK;AACzB"}