base.d.ts 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259
  1. import { KVMap, BaseRun } from "langsmith/schemas";
  2. import type { ChainValues } from "../utils/types/index.js";
  3. import type { AgentAction, AgentFinish } from "../agents.js";
  4. import type { LLMResult } from "../outputs.js";
  5. import type { BaseMessage } from "../messages/base.js";
  6. import { Serialized } from "../load/serializable.js";
  7. import { BaseCallbackHandler, BaseCallbackHandlerInput, HandleLLMNewTokenCallbackFields, NewTokenIndices } from "../callbacks/base.js";
  8. import type { Document } from "../documents/document.js";
  9. export type RunType = string;
  10. export interface Run extends BaseRun {
  11. id: string;
  12. start_time: number;
  13. execution_order: number;
  14. child_runs: this[];
  15. child_execution_order: number;
  16. events: Array<{
  17. name: string;
  18. time: string;
  19. kwargs?: Record<string, unknown>;
  20. }>;
  21. trace_id?: string;
  22. dotted_order?: string;
  23. }
  24. export interface AgentRun extends Run {
  25. actions: AgentAction[];
  26. }
  27. export declare function isBaseTracer(x: BaseCallbackHandler): x is BaseTracer;
  28. export declare abstract class BaseTracer extends BaseCallbackHandler {
  29. protected runMap: Map<string, Run>;
  30. constructor(_fields?: BaseCallbackHandlerInput);
  31. copy(): this;
  32. protected stringifyError(error: unknown): string;
  33. protected abstract persistRun(run: Run): Promise<void>;
  34. protected _addChildRun(parentRun: Run, childRun: Run): void;
  35. _addRunToRunMap(run: Run): {
  36. id: string;
  37. start_time: number;
  38. execution_order: number;
  39. child_runs: Run[];
  40. child_execution_order: number;
  41. events: {
  42. name: string;
  43. time: string;
  44. kwargs?: Record<string, unknown> | undefined;
  45. }[];
  46. trace_id?: string | undefined;
  47. dotted_order?: string | undefined;
  48. name: string;
  49. run_type: string;
  50. end_time?: number | undefined;
  51. extra?: KVMap | undefined;
  52. error?: string | undefined;
  53. serialized?: object | undefined;
  54. inputs: KVMap;
  55. outputs?: KVMap | undefined;
  56. reference_example_id?: string | undefined;
  57. parent_run_id?: string | undefined;
  58. tags?: string[] | undefined;
  59. attachments?: import("langsmith/schemas").Attachments | undefined;
  60. };
  61. protected _endTrace(run: Run): Promise<void>;
  62. protected _getExecutionOrder(parentRunId: string | undefined): number;
  63. /**
  64. * Create and add a run to the run map for LLM start events.
  65. * This must sometimes be done synchronously to avoid race conditions
  66. * when callbacks are backgrounded, so we expose it as a separate method here.
  67. */
  68. _createRunForLLMStart(llm: Serialized, prompts: string[], runId: string, parentRunId?: string, extraParams?: KVMap, tags?: string[], metadata?: KVMap, name?: string): {
  69. id: string;
  70. start_time: number;
  71. execution_order: number;
  72. child_runs: Run[];
  73. child_execution_order: number;
  74. events: {
  75. name: string;
  76. time: string;
  77. kwargs?: Record<string, unknown> | undefined;
  78. }[];
  79. trace_id?: string | undefined;
  80. dotted_order?: string | undefined;
  81. name: string;
  82. run_type: string;
  83. end_time?: number | undefined;
  84. extra?: KVMap | undefined;
  85. error?: string | undefined;
  86. serialized?: object | undefined;
  87. inputs: KVMap;
  88. outputs?: KVMap | undefined;
  89. reference_example_id?: string | undefined;
  90. parent_run_id?: string | undefined;
  91. tags?: string[] | undefined;
  92. attachments?: import("langsmith/schemas").Attachments | undefined;
  93. };
  94. handleLLMStart(llm: Serialized, prompts: string[], runId: string, parentRunId?: string, extraParams?: KVMap, tags?: string[], metadata?: KVMap, name?: string): Promise<Run>;
  95. /**
  96. * Create and add a run to the run map for chat model start events.
  97. * This must sometimes be done synchronously to avoid race conditions
  98. * when callbacks are backgrounded, so we expose it as a separate method here.
  99. */
  100. _createRunForChatModelStart(llm: Serialized, messages: BaseMessage[][], runId: string, parentRunId?: string, extraParams?: KVMap, tags?: string[], metadata?: KVMap, name?: string): {
  101. id: string;
  102. start_time: number;
  103. execution_order: number;
  104. child_runs: Run[];
  105. child_execution_order: number;
  106. events: {
  107. name: string;
  108. time: string;
  109. kwargs?: Record<string, unknown> | undefined;
  110. }[];
  111. trace_id?: string | undefined;
  112. dotted_order?: string | undefined;
  113. name: string;
  114. run_type: string;
  115. end_time?: number | undefined;
  116. extra?: KVMap | undefined;
  117. error?: string | undefined;
  118. serialized?: object | undefined;
  119. inputs: KVMap;
  120. outputs?: KVMap | undefined;
  121. reference_example_id?: string | undefined;
  122. parent_run_id?: string | undefined;
  123. tags?: string[] | undefined;
  124. attachments?: import("langsmith/schemas").Attachments | undefined;
  125. };
  126. handleChatModelStart(llm: Serialized, messages: BaseMessage[][], runId: string, parentRunId?: string, extraParams?: KVMap, tags?: string[], metadata?: KVMap, name?: string): Promise<Run>;
  127. handleLLMEnd(output: LLMResult, runId: string, _parentRunId?: string, _tags?: string[], extraParams?: Record<string, unknown>): Promise<Run>;
  128. handleLLMError(error: unknown, runId: string, _parentRunId?: string, _tags?: string[], extraParams?: Record<string, unknown>): Promise<Run>;
  129. /**
  130. * Create and add a run to the run map for chain start events.
  131. * This must sometimes be done synchronously to avoid race conditions
  132. * when callbacks are backgrounded, so we expose it as a separate method here.
  133. */
  134. _createRunForChainStart(chain: Serialized, inputs: ChainValues, runId: string, parentRunId?: string, tags?: string[], metadata?: KVMap, runType?: string, name?: string): {
  135. id: string;
  136. start_time: number;
  137. execution_order: number;
  138. child_runs: Run[];
  139. child_execution_order: number;
  140. events: {
  141. name: string;
  142. time: string;
  143. kwargs?: Record<string, unknown> | undefined;
  144. }[];
  145. trace_id?: string | undefined;
  146. dotted_order?: string | undefined;
  147. name: string;
  148. run_type: string;
  149. end_time?: number | undefined;
  150. extra?: KVMap | undefined;
  151. error?: string | undefined;
  152. serialized?: object | undefined;
  153. inputs: KVMap;
  154. outputs?: KVMap | undefined;
  155. reference_example_id?: string | undefined;
  156. parent_run_id?: string | undefined;
  157. tags?: string[] | undefined;
  158. attachments?: import("langsmith/schemas").Attachments | undefined;
  159. };
  160. handleChainStart(chain: Serialized, inputs: ChainValues, runId: string, parentRunId?: string, tags?: string[], metadata?: KVMap, runType?: string, name?: string): Promise<Run>;
  161. handleChainEnd(outputs: ChainValues, runId: string, _parentRunId?: string, _tags?: string[], kwargs?: {
  162. inputs?: Record<string, unknown>;
  163. }): Promise<Run>;
  164. handleChainError(error: unknown, runId: string, _parentRunId?: string, _tags?: string[], kwargs?: {
  165. inputs?: Record<string, unknown>;
  166. }): Promise<Run>;
  167. /**
  168. * Create and add a run to the run map for tool start events.
  169. * This must sometimes be done synchronously to avoid race conditions
  170. * when callbacks are backgrounded, so we expose it as a separate method here.
  171. */
  172. _createRunForToolStart(tool: Serialized, input: string, runId: string, parentRunId?: string, tags?: string[], metadata?: KVMap, name?: string): {
  173. id: string;
  174. start_time: number;
  175. execution_order: number;
  176. child_runs: Run[];
  177. child_execution_order: number;
  178. events: {
  179. name: string;
  180. time: string;
  181. kwargs?: Record<string, unknown> | undefined;
  182. }[];
  183. trace_id?: string | undefined;
  184. dotted_order?: string | undefined;
  185. name: string;
  186. run_type: string;
  187. end_time?: number | undefined;
  188. extra?: KVMap | undefined;
  189. error?: string | undefined;
  190. serialized?: object | undefined;
  191. inputs: KVMap;
  192. outputs?: KVMap | undefined;
  193. reference_example_id?: string | undefined;
  194. parent_run_id?: string | undefined;
  195. tags?: string[] | undefined;
  196. attachments?: import("langsmith/schemas").Attachments | undefined;
  197. };
  198. handleToolStart(tool: Serialized, input: string, runId: string, parentRunId?: string, tags?: string[], metadata?: KVMap, name?: string): Promise<Run>;
  199. handleToolEnd(output: any, runId: string): Promise<Run>;
  200. handleToolError(error: unknown, runId: string): Promise<Run>;
  201. handleAgentAction(action: AgentAction, runId: string): Promise<void>;
  202. handleAgentEnd(action: AgentFinish, runId: string): Promise<void>;
  203. /**
  204. * Create and add a run to the run map for retriever start events.
  205. * This must sometimes be done synchronously to avoid race conditions
  206. * when callbacks are backgrounded, so we expose it as a separate method here.
  207. */
  208. _createRunForRetrieverStart(retriever: Serialized, query: string, runId: string, parentRunId?: string, tags?: string[], metadata?: KVMap, name?: string): {
  209. id: string;
  210. start_time: number;
  211. execution_order: number;
  212. child_runs: Run[];
  213. child_execution_order: number;
  214. events: {
  215. name: string;
  216. time: string;
  217. kwargs?: Record<string, unknown> | undefined;
  218. }[];
  219. trace_id?: string | undefined;
  220. dotted_order?: string | undefined;
  221. name: string;
  222. run_type: string;
  223. end_time?: number | undefined;
  224. extra?: KVMap | undefined;
  225. error?: string | undefined;
  226. serialized?: object | undefined;
  227. inputs: KVMap;
  228. outputs?: KVMap | undefined;
  229. reference_example_id?: string | undefined;
  230. parent_run_id?: string | undefined;
  231. tags?: string[] | undefined;
  232. attachments?: import("langsmith/schemas").Attachments | undefined;
  233. };
  234. handleRetrieverStart(retriever: Serialized, query: string, runId: string, parentRunId?: string, tags?: string[], metadata?: KVMap, name?: string): Promise<Run>;
  235. handleRetrieverEnd(documents: Document<Record<string, unknown>>[], runId: string): Promise<Run>;
  236. handleRetrieverError(error: unknown, runId: string): Promise<Run>;
  237. handleText(text: string, runId: string): Promise<void>;
  238. handleLLMNewToken(token: string, idx: NewTokenIndices, runId: string, _parentRunId?: string, _tags?: string[], fields?: HandleLLMNewTokenCallbackFields): Promise<Run>;
  239. onRunCreate?(run: Run): void | Promise<void>;
  240. onRunUpdate?(run: Run): void | Promise<void>;
  241. onLLMStart?(run: Run): void | Promise<void>;
  242. onLLMEnd?(run: Run): void | Promise<void>;
  243. onLLMError?(run: Run): void | Promise<void>;
  244. onChainStart?(run: Run): void | Promise<void>;
  245. onChainEnd?(run: Run): void | Promise<void>;
  246. onChainError?(run: Run): void | Promise<void>;
  247. onToolStart?(run: Run): void | Promise<void>;
  248. onToolEnd?(run: Run): void | Promise<void>;
  249. onToolError?(run: Run): void | Promise<void>;
  250. onAgentAction?(run: Run): void | Promise<void>;
  251. onAgentEnd?(run: Run): void | Promise<void>;
  252. onRetrieverStart?(run: Run): void | Promise<void>;
  253. onRetrieverEnd?(run: Run): void | Promise<void>;
  254. onRetrieverError?(run: Run): void | Promise<void>;
  255. onText?(run: Run): void | Promise<void>;
  256. onLLMNewToken?(run: Run, token: string, kwargs?: {
  257. chunk: any;
  258. }): void | Promise<void>;
  259. }