Spaces:
				
			
			
	
			
			
		Paused
		
	
	
	
			
			
	
	
	
	
		
		
		Paused
		
	| from datetime import datetime | |
| from enum import Enum | |
| from typing import Any, Optional, Union | |
| from pydantic import BaseModel, ConfigDict, field_validator | |
| class BaseTraceInfo(BaseModel): | |
| message_id: Optional[str] = None | |
| message_data: Optional[Any] = None | |
| inputs: Optional[Union[str, dict[str, Any], list]] = None | |
| outputs: Optional[Union[str, dict[str, Any], list]] = None | |
| start_time: Optional[datetime] = None | |
| end_time: Optional[datetime] = None | |
| metadata: dict[str, Any] | |
| def ensure_type(cls, v): | |
| if v is None: | |
| return None | |
| if isinstance(v, str | dict | list): | |
| return v | |
| return "" | |
| class WorkflowTraceInfo(BaseTraceInfo): | |
| workflow_data: Any | |
| conversation_id: Optional[str] = None | |
| workflow_app_log_id: Optional[str] = None | |
| workflow_id: str | |
| tenant_id: str | |
| workflow_run_id: str | |
| workflow_run_elapsed_time: Union[int, float] | |
| workflow_run_status: str | |
| workflow_run_inputs: dict[str, Any] | |
| workflow_run_outputs: dict[str, Any] | |
| workflow_run_version: str | |
| error: Optional[str] = None | |
| total_tokens: int | |
| file_list: list[str] | |
| query: str | |
| metadata: dict[str, Any] | |
| class MessageTraceInfo(BaseTraceInfo): | |
| conversation_model: str | |
| message_tokens: int | |
| answer_tokens: int | |
| total_tokens: int | |
| error: Optional[str] = None | |
| file_list: Optional[Union[str, dict[str, Any], list]] = None | |
| message_file_data: Optional[Any] = None | |
| conversation_mode: str | |
| class ModerationTraceInfo(BaseTraceInfo): | |
| flagged: bool | |
| action: str | |
| preset_response: str | |
| query: str | |
| class SuggestedQuestionTraceInfo(BaseTraceInfo): | |
| total_tokens: int | |
| status: Optional[str] = None | |
| error: Optional[str] = None | |
| from_account_id: Optional[str] = None | |
| agent_based: Optional[bool] = None | |
| from_source: Optional[str] = None | |
| model_provider: Optional[str] = None | |
| model_id: Optional[str] = None | |
| suggested_question: list[str] | |
| level: str | |
| status_message: Optional[str] = None | |
| workflow_run_id: Optional[str] = None | |
| model_config = ConfigDict(protected_namespaces=()) | |
| class DatasetRetrievalTraceInfo(BaseTraceInfo): | |
| documents: Any | |
| class ToolTraceInfo(BaseTraceInfo): | |
| tool_name: str | |
| tool_inputs: dict[str, Any] | |
| tool_outputs: str | |
| metadata: dict[str, Any] | |
| message_file_data: Any | |
| error: Optional[str] = None | |
| tool_config: dict[str, Any] | |
| time_cost: Union[int, float] | |
| tool_parameters: dict[str, Any] | |
| file_url: Union[str, None, list] | |
| class GenerateNameTraceInfo(BaseTraceInfo): | |
| conversation_id: Optional[str] = None | |
| tenant_id: str | |
| trace_info_info_map = { | |
| "WorkflowTraceInfo": WorkflowTraceInfo, | |
| "MessageTraceInfo": MessageTraceInfo, | |
| "ModerationTraceInfo": ModerationTraceInfo, | |
| "SuggestedQuestionTraceInfo": SuggestedQuestionTraceInfo, | |
| "DatasetRetrievalTraceInfo": DatasetRetrievalTraceInfo, | |
| "ToolTraceInfo": ToolTraceInfo, | |
| "GenerateNameTraceInfo": GenerateNameTraceInfo, | |
| } | |
| class TraceTaskName(str, Enum): | |
| CONVERSATION_TRACE = "conversation" | |
| WORKFLOW_TRACE = "workflow" | |
| MESSAGE_TRACE = "message" | |
| MODERATION_TRACE = "moderation" | |
| SUGGESTED_QUESTION_TRACE = "suggested_question" | |
| DATASET_RETRIEVAL_TRACE = "dataset_retrieval" | |
| TOOL_TRACE = "tool" | |
| GENERATE_NAME_TRACE = "generate_conversation_name" | |
