manager.d.ts 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. import { AgentAction, AgentFinish } from "../agents.js";
  2. import type { ChainValues } from "../utils/types/index.js";
  3. import { LLMResult } from "../outputs.js";
  4. import { BaseCallbackHandler, CallbackHandlerMethods, HandleLLMNewTokenCallbackFields, NewTokenIndices } from "./base.js";
  5. import { type BaseMessage } from "../messages/base.js";
  6. import { LangChainTracerFields } from "../tracers/tracer_langchain.js";
  7. import { Serialized } from "../load/serializable.js";
  8. import type { DocumentInterface } from "../documents/document.js";
  9. type BaseCallbackManagerMethods = {
  10. [K in keyof CallbackHandlerMethods]?: (...args: Parameters<Required<CallbackHandlerMethods>[K]>) => Promise<unknown>;
  11. };
  12. export interface CallbackManagerOptions {
  13. verbose?: boolean;
  14. tracing?: boolean;
  15. }
  16. export type Callbacks = CallbackManager | (BaseCallbackHandler | CallbackHandlerMethods)[];
  17. export interface BaseCallbackConfig {
  18. /**
  19. * Name for the tracer run for this call. Defaults to the name of the class.
  20. */
  21. runName?: string;
  22. /**
  23. * Tags for this call and any sub-calls (eg. a Chain calling an LLM).
  24. * You can use these to filter calls.
  25. */
  26. tags?: string[];
  27. /**
  28. * Metadata for this call and any sub-calls (eg. a Chain calling an LLM).
  29. * Keys should be strings, values should be JSON-serializable.
  30. */
  31. metadata?: Record<string, unknown>;
  32. /**
  33. * Callbacks for this call and any sub-calls (eg. a Chain calling an LLM).
  34. * Tags are passed to all callbacks, metadata is passed to handle*Start callbacks.
  35. */
  36. callbacks?: Callbacks;
  37. /**
  38. * Unique identifier for the tracer run for this call. If not provided, a new UUID
  39. * will be generated.
  40. */
  41. runId?: string;
  42. }
  43. export declare function parseCallbackConfigArg(arg: Callbacks | BaseCallbackConfig | undefined): BaseCallbackConfig;
  44. /**
  45. * Manage callbacks from different components of LangChain.
  46. */
  47. export declare abstract class BaseCallbackManager {
  48. abstract addHandler(handler: BaseCallbackHandler): void;
  49. abstract removeHandler(handler: BaseCallbackHandler): void;
  50. abstract setHandlers(handlers: BaseCallbackHandler[]): void;
  51. setHandler(handler: BaseCallbackHandler): void;
  52. }
  53. /**
  54. * Base class for run manager in LangChain.
  55. */
  56. export declare class BaseRunManager {
  57. readonly runId: string;
  58. readonly handlers: BaseCallbackHandler[];
  59. protected readonly inheritableHandlers: BaseCallbackHandler[];
  60. protected readonly tags: string[];
  61. protected readonly inheritableTags: string[];
  62. protected readonly metadata: Record<string, unknown>;
  63. protected readonly inheritableMetadata: Record<string, unknown>;
  64. protected readonly _parentRunId?: string | undefined;
  65. constructor(runId: string, handlers: BaseCallbackHandler[], inheritableHandlers: BaseCallbackHandler[], tags: string[], inheritableTags: string[], metadata: Record<string, unknown>, inheritableMetadata: Record<string, unknown>, _parentRunId?: string | undefined);
  66. get parentRunId(): string | undefined;
  67. handleText(text: string): Promise<void>;
  68. handleCustomEvent(eventName: string, data: any, _runId?: string, _tags?: string[], _metadata?: Record<string, any>): Promise<void>;
  69. }
  70. /**
  71. * Manages callbacks for retriever runs.
  72. */
  73. export declare class CallbackManagerForRetrieverRun extends BaseRunManager implements BaseCallbackManagerMethods {
  74. getChild(tag?: string): CallbackManager;
  75. handleRetrieverEnd(documents: DocumentInterface[]): Promise<void>;
  76. handleRetrieverError(err: Error | unknown): Promise<void>;
  77. }
  78. export declare class CallbackManagerForLLMRun extends BaseRunManager implements BaseCallbackManagerMethods {
  79. handleLLMNewToken(token: string, idx?: NewTokenIndices, _runId?: string, _parentRunId?: string, _tags?: string[], fields?: HandleLLMNewTokenCallbackFields): Promise<void>;
  80. handleLLMError(err: Error | unknown, _runId?: string, _parentRunId?: string, _tags?: string[], extraParams?: Record<string, unknown>): Promise<void>;
  81. handleLLMEnd(output: LLMResult, _runId?: string, _parentRunId?: string, _tags?: string[], extraParams?: Record<string, unknown>): Promise<void>;
  82. }
  83. export declare class CallbackManagerForChainRun extends BaseRunManager implements BaseCallbackManagerMethods {
  84. getChild(tag?: string): CallbackManager;
  85. handleChainError(err: Error | unknown, _runId?: string, _parentRunId?: string, _tags?: string[], kwargs?: {
  86. inputs?: Record<string, unknown>;
  87. }): Promise<void>;
  88. handleChainEnd(output: ChainValues, _runId?: string, _parentRunId?: string, _tags?: string[], kwargs?: {
  89. inputs?: Record<string, unknown>;
  90. }): Promise<void>;
  91. handleAgentAction(action: AgentAction): Promise<void>;
  92. handleAgentEnd(action: AgentFinish): Promise<void>;
  93. }
  94. export declare class CallbackManagerForToolRun extends BaseRunManager implements BaseCallbackManagerMethods {
  95. getChild(tag?: string): CallbackManager;
  96. handleToolError(err: Error | unknown): Promise<void>;
  97. handleToolEnd(output: any): Promise<void>;
  98. }
  99. /**
  100. * @example
  101. * ```typescript
  102. * const prompt = PromptTemplate.fromTemplate("What is the answer to {question}?");
  103. *
  104. * // Example of using LLMChain with OpenAI and a simple prompt
  105. * const chain = new LLMChain({
  106. * llm: new ChatOpenAI({ temperature: 0.9 }),
  107. * prompt,
  108. * });
  109. *
  110. * // Running the chain with a single question
  111. * const result = await chain.call({
  112. * question: "What is the airspeed velocity of an unladen swallow?",
  113. * });
  114. * console.log("The answer is:", result);
  115. * ```
  116. */
  117. export declare class CallbackManager extends BaseCallbackManager implements BaseCallbackManagerMethods {
  118. handlers: BaseCallbackHandler[];
  119. inheritableHandlers: BaseCallbackHandler[];
  120. tags: string[];
  121. inheritableTags: string[];
  122. metadata: Record<string, unknown>;
  123. inheritableMetadata: Record<string, unknown>;
  124. name: string;
  125. _parentRunId?: string;
  126. constructor(parentRunId?: string, options?: {
  127. handlers?: BaseCallbackHandler[];
  128. inheritableHandlers?: BaseCallbackHandler[];
  129. tags?: string[];
  130. inheritableTags?: string[];
  131. metadata?: Record<string, unknown>;
  132. inheritableMetadata?: Record<string, unknown>;
  133. });
  134. /**
  135. * Gets the parent run ID, if any.
  136. *
  137. * @returns The parent run ID.
  138. */
  139. getParentRunId(): string | undefined;
  140. handleLLMStart(llm: Serialized, prompts: string[], runId?: string | undefined, _parentRunId?: string | undefined, extraParams?: Record<string, unknown> | undefined, _tags?: string[] | undefined, _metadata?: Record<string, unknown> | undefined, runName?: string | undefined): Promise<CallbackManagerForLLMRun[]>;
  141. handleChatModelStart(llm: Serialized, messages: BaseMessage[][], runId?: string | undefined, _parentRunId?: string | undefined, extraParams?: Record<string, unknown> | undefined, _tags?: string[] | undefined, _metadata?: Record<string, unknown> | undefined, runName?: string | undefined): Promise<CallbackManagerForLLMRun[]>;
  142. handleChainStart(chain: Serialized, inputs: ChainValues, runId?: string, runType?: string | undefined, _tags?: string[] | undefined, _metadata?: Record<string, unknown> | undefined, runName?: string | undefined): Promise<CallbackManagerForChainRun>;
  143. handleToolStart(tool: Serialized, input: string, runId?: string, _parentRunId?: string | undefined, _tags?: string[] | undefined, _metadata?: Record<string, unknown> | undefined, runName?: string | undefined): Promise<CallbackManagerForToolRun>;
  144. handleRetrieverStart(retriever: Serialized, query: string, runId?: string, _parentRunId?: string | undefined, _tags?: string[] | undefined, _metadata?: Record<string, unknown> | undefined, runName?: string | undefined): Promise<CallbackManagerForRetrieverRun>;
  145. handleCustomEvent?(eventName: string, data: any, runId: string, _tags?: string[], _metadata?: Record<string, any>): Promise<any>;
  146. addHandler(handler: BaseCallbackHandler, inherit?: boolean): void;
  147. removeHandler(handler: BaseCallbackHandler): void;
  148. setHandlers(handlers: BaseCallbackHandler[], inherit?: boolean): void;
  149. addTags(tags: string[], inherit?: boolean): void;
  150. removeTags(tags: string[]): void;
  151. addMetadata(metadata: Record<string, unknown>, inherit?: boolean): void;
  152. removeMetadata(metadata: Record<string, unknown>): void;
  153. copy(additionalHandlers?: BaseCallbackHandler[], inherit?: boolean): CallbackManager;
  154. static fromHandlers(handlers: CallbackHandlerMethods): CallbackManager;
  155. static configure(inheritableHandlers?: Callbacks, localHandlers?: Callbacks, inheritableTags?: string[], localTags?: string[], inheritableMetadata?: Record<string, unknown>, localMetadata?: Record<string, unknown>, options?: CallbackManagerOptions): CallbackManager | undefined;
  156. static _configureSync(inheritableHandlers?: Callbacks, localHandlers?: Callbacks, inheritableTags?: string[], localTags?: string[], inheritableMetadata?: Record<string, unknown>, localMetadata?: Record<string, unknown>, options?: CallbackManagerOptions): CallbackManager | undefined;
  157. }
  158. export declare function ensureHandler(handler: BaseCallbackHandler | CallbackHandlerMethods): BaseCallbackHandler;
  159. /**
  160. * @deprecated Use [`traceable`](https://docs.smith.langchain.com/observability/how_to_guides/tracing/annotate_code)
  161. * from "langsmith" instead.
  162. */
  163. export declare class TraceGroup {
  164. private groupName;
  165. private options?;
  166. private runManager?;
  167. constructor(groupName: string, options?: {
  168. projectName?: string | undefined;
  169. exampleId?: string | undefined;
  170. } | undefined);
  171. private getTraceGroupCallbackManager;
  172. start(inputs?: ChainValues): Promise<CallbackManager>;
  173. error(err: Error | unknown): Promise<void>;
  174. end(output?: ChainValues): Promise<void>;
  175. }
  176. export declare function traceAsGroup<T, A extends any[]>(groupOptions: {
  177. name: string;
  178. } & LangChainTracerFields, enclosedCode: (manager: CallbackManager, ...args: A) => Promise<T>, ...args: A): Promise<T>;
  179. export {};