prompt_values.cjs 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.ImagePromptValue = exports.ChatPromptValue = exports.StringPromptValue = exports.BasePromptValue = void 0;
  4. const serializable_js_1 = require("./load/serializable.cjs");
  5. const human_js_1 = require("./messages/human.cjs");
  6. const utils_js_1 = require("./messages/utils.cjs");
  7. /**
  8. * Base PromptValue class. All prompt values should extend this class.
  9. */
  10. class BasePromptValue extends serializable_js_1.Serializable {
  11. }
  12. exports.BasePromptValue = BasePromptValue;
  13. /**
  14. * Represents a prompt value as a string. It extends the BasePromptValue
  15. * class and overrides the toString and toChatMessages methods.
  16. */
  17. class StringPromptValue extends BasePromptValue {
  18. static lc_name() {
  19. return "StringPromptValue";
  20. }
  21. constructor(value) {
  22. super({ value });
  23. Object.defineProperty(this, "lc_namespace", {
  24. enumerable: true,
  25. configurable: true,
  26. writable: true,
  27. value: ["langchain_core", "prompt_values"]
  28. });
  29. Object.defineProperty(this, "lc_serializable", {
  30. enumerable: true,
  31. configurable: true,
  32. writable: true,
  33. value: true
  34. });
  35. Object.defineProperty(this, "value", {
  36. enumerable: true,
  37. configurable: true,
  38. writable: true,
  39. value: void 0
  40. });
  41. this.value = value;
  42. }
  43. toString() {
  44. return this.value;
  45. }
  46. toChatMessages() {
  47. return [new human_js_1.HumanMessage(this.value)];
  48. }
  49. }
  50. exports.StringPromptValue = StringPromptValue;
  51. /**
  52. * Class that represents a chat prompt value. It extends the
  53. * BasePromptValue and includes an array of BaseMessage instances.
  54. */
  55. class ChatPromptValue extends BasePromptValue {
  56. static lc_name() {
  57. return "ChatPromptValue";
  58. }
  59. constructor(fields) {
  60. if (Array.isArray(fields)) {
  61. // eslint-disable-next-line no-param-reassign
  62. fields = { messages: fields };
  63. }
  64. super(fields);
  65. Object.defineProperty(this, "lc_namespace", {
  66. enumerable: true,
  67. configurable: true,
  68. writable: true,
  69. value: ["langchain_core", "prompt_values"]
  70. });
  71. Object.defineProperty(this, "lc_serializable", {
  72. enumerable: true,
  73. configurable: true,
  74. writable: true,
  75. value: true
  76. });
  77. Object.defineProperty(this, "messages", {
  78. enumerable: true,
  79. configurable: true,
  80. writable: true,
  81. value: void 0
  82. });
  83. this.messages = fields.messages;
  84. }
  85. toString() {
  86. return (0, utils_js_1.getBufferString)(this.messages);
  87. }
  88. toChatMessages() {
  89. return this.messages;
  90. }
  91. }
  92. exports.ChatPromptValue = ChatPromptValue;
  93. /**
  94. * Class that represents an image prompt value. It extends the
  95. * BasePromptValue and includes an ImageURL instance.
  96. */
  97. class ImagePromptValue extends BasePromptValue {
  98. static lc_name() {
  99. return "ImagePromptValue";
  100. }
  101. constructor(fields) {
  102. if (!("imageUrl" in fields)) {
  103. // eslint-disable-next-line no-param-reassign
  104. fields = { imageUrl: fields };
  105. }
  106. super(fields);
  107. Object.defineProperty(this, "lc_namespace", {
  108. enumerable: true,
  109. configurable: true,
  110. writable: true,
  111. value: ["langchain_core", "prompt_values"]
  112. });
  113. Object.defineProperty(this, "lc_serializable", {
  114. enumerable: true,
  115. configurable: true,
  116. writable: true,
  117. value: true
  118. });
  119. Object.defineProperty(this, "imageUrl", {
  120. enumerable: true,
  121. configurable: true,
  122. writable: true,
  123. value: void 0
  124. });
  125. /** @ignore */
  126. Object.defineProperty(this, "value", {
  127. enumerable: true,
  128. configurable: true,
  129. writable: true,
  130. value: void 0
  131. });
  132. this.imageUrl = fields.imageUrl;
  133. }
  134. toString() {
  135. return this.imageUrl.url;
  136. }
  137. toChatMessages() {
  138. return [
  139. new human_js_1.HumanMessage({
  140. content: [
  141. {
  142. type: "image_url",
  143. image_url: {
  144. detail: this.imageUrl.detail,
  145. url: this.imageUrl.url,
  146. },
  147. },
  148. ],
  149. }),
  150. ];
  151. }
  152. }
  153. exports.ImagePromptValue = ImagePromptValue;