logger.base_logger
基础日志记录器
class BaseLogger(ABC)
开始
@abstractmethod
def start() -> str
打开与日志数据库的连接,并开始记录。
返回:
session_id
str - 日志会话的唯一标识符
log_chat_completion
@abstractmethod
def log_chat_completion(invocation_id: uuid.UUID, client_id: int,
wrapper_id: int, source: Union[str, Agent],
request: Dict[str, Union[float, str, List[Dict[str,
str]]]],
response: Union[str, ChatCompletion], is_cached: int,
cost: float, start_time: str) -> None
将聊天完成记录到数据库。
在AutoGen中,聊天完成有些复杂,因为它们由autogen.oai.OpenAIWrapper
类处理。对create
的一次调用可能会引致多个底层OpenAI调用,这取决于使用的llm_config列表,以及任何错误或重试。
参数:
invocation_id
uuid - 用于调用 OpenAIWrapper.create 方法的唯一标识符client_id
int - 一个用于底层OpenAI客户端实例的唯一标识符wrapper_id
int - OpenAIWrapper实例的唯一标识符source
str 或 Agent - 事件的来源/创建者,可以是字符串名称或 Agent 实例request
字典 - 表示向OpenAI客户端端点发出的请求或调用的字典response
str 或 ChatCompletion - 来自OpenAI的响应is_cached
int - 如果响应是缓存命中,则为1,否则为0cost(float)
- OpenAI响应的成本start_time
str - 表示请求发起时刻的字符串
log_new_agent
@abstractmethod
def log_new_agent(agent: ConversableAgent, init_args: Dict[str, Any]) -> None
记录一个新代理的诞生。
参数:
agent
ConversableAgent - 要记录的代理。init_args
dict - 传递给构造可对话代理的参数
log_event
@abstractmethod
def log_event(source: Union[str, Agent], name: str,
**kwargs: Dict[str, Any]) -> None
为代理记录一个事件。
参数:
source
str 或 Agent - 事件的来源/创建者,可以是字符串名称或 Agent 实例name
str - 事件的名称kwargs
dict - 记录的事件信息
log_new_wrapper
@abstractmethod
def log_new_wrapper(
wrapper: OpenAIWrapper,
init_args: Dict[str, Union[LLMConfig, List[LLMConfig]]]) -> None
记录一个新的OpenAIWrapper的诞生。
参数:
wrapper
OpenAIWrapper - 要记录的包装器。init_args
dict - 传递给构造包装器的参数
记录新客户端
@abstractmethod
def log_new_client(client: Union[AzureOpenAI, OpenAI], wrapper: OpenAIWrapper,
init_args: Dict[str, Any]) -> None
记录一个新的OpenAIWrapper的诞生。
参数:
wrapper
OpenAI - 用于记录的OpenAI客户端。init_args
dict - 传递给构造客户端的参数
log_function_use
@abstractmethod
def log_function_use(source: Union[str, Agent], function: F,
args: Dict[str, Any], returns: Any) -> None
记录已注册函数的使用情况(可能是一个工具)
参数:
source
str 或 Agent - 事件的来源/创建者,可以是字符串名称或 Agent 实例function
F - 函数信息args
dict - 要记录的函数参数returns
any - 返回的值
停止
@abstractmethod
def stop() -> None
关闭与日志数据库的连接,并停止记录日志。
get_connection
@abstractmethod
def get_connection() -> Union[None, sqlite3.Connection]
返回与日志数据库的连接。