1
"""Streaming callback manager."""
2
from llama_index.callbacks.base_handler import BaseCallbackHandler
3
from llama_index.callbacks.schema import CBEventType
5
from typing import Optional, Dict, Any, List, Callable
7
STORAGE_DIR = "./storage"
11
class StreamlitFunctionsCallbackHandler(BaseCallbackHandler):
12
"""Callback handler that outputs streamlit components given events."""
14
def __init__(self, msg_handler: Callable[[str], Any]) -> None:
15
"""Initialize the base callback handler."""
16
self.msg_handler = msg_handler
17
super().__init__([], [])
21
event_type: CBEventType,
22
payload: Optional[Dict[str, Any]] = None,
27
"""Run when an event starts and return id of event."""
28
if event_type == CBEventType.FUNCTION_CALL:
30
raise ValueError("Payload cannot be None")
31
arguments_str = payload["function_call"]
32
tool_str = payload["tool"].name
33
print_str = f"Calling function: {tool_str} with args: {arguments_str}\n\n"
34
self.msg_handler(print_str)
41
event_type: CBEventType,
42
payload: Optional[Dict[str, Any]] = None,
46
"""Run when an event ends."""
60
def start_trace(self, trace_id: Optional[str] = None) -> None:
61
"""Run when an overall trace is launched."""
66
trace_id: Optional[str] = None,
67
trace_map: Optional[Dict[str, List[str]]] = None,
69
"""Run when an overall trace is exited."""