Last active
April 5, 2023 16:48
-
-
Save mikeg0/bbbb665583b6a8bb1a0ee29e879e30cb to your computer and use it in GitHub Desktop.
langchain verbose callback example
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# from langchain.callbacks.stdout import StdOutCallbackHandler | |
from langchain.callbacks.base import BaseCallbackHandler | |
from typing import Any, Dict, List, Optional, Union | |
class VerboseCallbackHandler(BaseCallbackHandler): | |
"""Callback Handler that prints to std out.""" | |
def __init__(self, color: Optional[str] = None): | |
print(color) | |
def on_llm_start( | |
self, serialized: Dict[str, Any], prompts: List[str], **kwargs: Any | |
) -> None: | |
print(serialized) | |
def on_llm_end(self, response, **kwargs: Any) -> None: | |
print(response) | |
def on_llm_new_token(self, token: str, **kwargs: Any) -> None: | |
print(token) | |
def on_llm_error( | |
self, error: Union[Exception, KeyboardInterrupt], **kwargs: Any | |
) -> None: | |
print(error) | |
def on_chain_start( | |
self, serialized: Dict[str, Any], inputs: Dict[str, Any], **kwargs: Any | |
) -> None: | |
# class_name = serialized["name"] | |
print(serialized) | |
def on_chain_end(self, outputs: Dict[str, Any], **kwargs: Any) -> None: | |
print(outputs) | |
def on_chain_error( | |
self, error: Union[Exception, KeyboardInterrupt], **kwargs: Any | |
) -> None: | |
print(error) | |
def on_tool_start( | |
self, | |
serialized: Dict[str, Any], | |
input_str: str, | |
**kwargs: Any, | |
) -> None: | |
print(serialized) | |
def on_agent_action( | |
self, action, color: Optional[str] = None, **kwargs: Any | |
) -> Any: | |
"""Run on agent action.""" | |
print(action) | |
def on_tool_end( | |
self, | |
output: str, | |
color: Optional[str] = None, | |
observation_prefix: Optional[str] = None, | |
llm_prefix: Optional[str] = None, | |
**kwargs: Any, | |
) -> None: | |
"""If not the final action, print out observation.""" | |
if observation_prefix: | |
print(f"\n{observation_prefix}") | |
print(output) | |
if llm_prefix: | |
print(f"\n{llm_prefix}") | |
def on_tool_error( | |
self, error: Union[Exception, KeyboardInterrupt], **kwargs: Any | |
) -> None: | |
print(error) | |
def on_text( | |
self, | |
text: Optional[str] = None, | |
color: Optional[str] = None, | |
end: str = "", | |
**kwargs: Optional[str], | |
) -> None: | |
print(text) | |
def on_agent_finish( | |
self, finish, color: Optional[str] = None, **kwargs: Any | |
) -> None: | |
print(finish) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment