function.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import { BaseMessage, BaseMessageChunk, mergeContent, _mergeDicts, } from "./base.js";
  2. /**
  3. * Represents a function message in a conversation.
  4. */
  5. export class FunctionMessage extends BaseMessage {
  6. static lc_name() {
  7. return "FunctionMessage";
  8. }
  9. constructor(fields,
  10. /** @deprecated */
  11. name) {
  12. if (typeof fields === "string") {
  13. // eslint-disable-next-line no-param-reassign, @typescript-eslint/no-non-null-assertion
  14. fields = { content: fields, name: name };
  15. }
  16. super(fields);
  17. }
  18. _getType() {
  19. return "function";
  20. }
  21. }
  22. /**
  23. * Represents a chunk of a function message, which can be concatenated
  24. * with other function message chunks.
  25. */
  26. export class FunctionMessageChunk extends BaseMessageChunk {
  27. static lc_name() {
  28. return "FunctionMessageChunk";
  29. }
  30. _getType() {
  31. return "function";
  32. }
  33. concat(chunk) {
  34. return new FunctionMessageChunk({
  35. content: mergeContent(this.content, chunk.content),
  36. additional_kwargs: _mergeDicts(this.additional_kwargs, chunk.additional_kwargs),
  37. response_metadata: _mergeDicts(this.response_metadata, chunk.response_metadata),
  38. name: this.name ?? "",
  39. id: this.id ?? chunk.id,
  40. });
  41. }
  42. }
  43. export function isFunctionMessage(x) {
  44. return x._getType() === "function";
  45. }
  46. export function isFunctionMessageChunk(x) {
  47. return x._getType() === "function";
  48. }