70 lines
2.2 KiB
TypeScript
70 lines
2.2 KiB
TypeScript
import { AgentActionOutputParser } from "../types.js";
|
|
export declare const FINAL_ANSWER_ACTION = "Final Answer:";
|
|
/**
|
|
* A class that extends the AgentActionOutputParser to parse the output of
|
|
* the ChatAgent in LangChain. It checks if the output text contains the
|
|
* final answer action or a JSON response, and parses it accordingly.
|
|
* @example
|
|
* ```typescript
|
|
* const prompt = ChatPromptTemplate.fromMessages([
|
|
* [
|
|
* "ai",
|
|
* `{PREFIX}
|
|
* {FORMAT_INSTRUCTIONS}
|
|
* {SUFFIX}`,
|
|
* ],
|
|
* ["human", "Question: {input}"],
|
|
* ]);
|
|
* const runnableAgent = RunnableSequence.from([
|
|
* {
|
|
* input: (i: { input: string; steps: AgentStep[] }) => i.input,
|
|
* agent_scratchpad: (i: { input: string; steps: AgentStep[] }) =>
|
|
* formatLogToString(i.steps),
|
|
* },
|
|
* prompt,
|
|
* new OpenAI({ temperature: 0 }),
|
|
* new ChatAgentOutputParser(),
|
|
* ]);
|
|
*
|
|
* const executor = AgentExecutor.fromAgentAndTools({
|
|
* agent: runnableAgent,
|
|
* tools: [new SerpAPI(), new Calculator()],
|
|
* });
|
|
*
|
|
* const result = await executor.invoke({
|
|
* input:
|
|
* "Who is Olivia Wilde's boyfriend? What is his current age raised to the 0.23 power?",
|
|
* });
|
|
* ```
|
|
*/
|
|
export declare class ChatAgentOutputParser extends AgentActionOutputParser {
|
|
lc_namespace: string[];
|
|
/**
|
|
* Parses the output text from the MRKL chain into an agent action or
|
|
* agent finish. If the text contains the final answer action or does not
|
|
* contain an action, it returns an AgentFinish with the output and log.
|
|
* If the text contains a JSON response, it returns the tool, toolInput,
|
|
* and log.
|
|
* @param text The output text from the MRKL chain.
|
|
* @returns An object that satisfies the AgentFinish interface or an object with the tool, toolInput, and log.
|
|
*/
|
|
parse(text: string): Promise<{
|
|
returnValues: {
|
|
output: string;
|
|
};
|
|
log: string;
|
|
tool?: undefined;
|
|
toolInput?: undefined;
|
|
} | {
|
|
tool: any;
|
|
toolInput: any;
|
|
log: string;
|
|
returnValues?: undefined;
|
|
}>;
|
|
/**
|
|
* Returns the format instructions used in the output parser for the
|
|
* ChatAgent class.
|
|
* @returns The format instructions as a string.
|
|
*/
|
|
getFormatInstructions(): string;
|
|
}
|