Skip to content

Instantly share code, notes, and snippets.

@mikeg0
Last active April 5, 2023 16:48
Show Gist options
  • Save mikeg0/bbbb665583b6a8bb1a0ee29e879e30cb to your computer and use it in GitHub Desktop.
Save mikeg0/bbbb665583b6a8bb1a0ee29e879e30cb to your computer and use it in GitHub Desktop.
langchain verbose callback example
# 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