MCPcopy Create free account
hub / github.com/Paper2Poster/Paper2Poster / FunctionCallingMessage

Class FunctionCallingMessage

camel/messages/func_message.py:37–163  ·  view source on GitHub ↗

r"""Class for message objects used specifically for function-related messages. Args: func_name (Optional[str]): The name of the function used. (default: :obj:`None`) args (Optional[Dict]): The dictionary of arguments passed to the function. (default:

Source from the content-addressed store, hash-verified

35
36@dataclass
37class FunctionCallingMessage(BaseMessage):
38 r"""Class for message objects used specifically for
39 function-related messages.
40
41 Args:
42 func_name (Optional[str]): The name of the function used.
43 (default: :obj:`None`)
44 args (Optional[Dict]): The dictionary of arguments passed to the
45 function. (default: :obj:`None`)
46 result (Optional[Any]): The result of function execution.
47 (default: :obj:`None`)
48 tool_call_id (Optional[str]): The ID of the tool call, if available.
49 (default: :obj:`None`)
50 """
51
52 func_name: Optional[str] = None
53 args: Optional[Dict] = None
54 result: Optional[Any] = None
55 tool_call_id: Optional[str] = None
56
57 def to_openai_message(
58 self,
59 role_at_backend: OpenAIBackendRole,
60 ) -> OpenAIMessage:
61 r"""Converts the message to an :obj:`OpenAIMessage` object.
62
63 Args:
64 role_at_backend (OpenAIBackendRole): The role of the message in
65 OpenAI chat system.
66
67 Returns:
68 OpenAIMessage: The converted :obj:`OpenAIMessage` object.
69 """
70 if role_at_backend == OpenAIBackendRole.ASSISTANT:
71 return self.to_openai_assistant_message()
72 elif role_at_backend == OpenAIBackendRole.FUNCTION:
73 return self.to_openai_tool_message()
74 else:
75 raise ValueError(f"Unsupported role: {role_at_backend}.")
76
77 def to_sharegpt(
78 self,
79 function_format: Optional[
80 FunctionCallFormatter[ToolCall, ToolResponse]
81 ] = None,
82 ) -> ShareGPTMessage:
83 r"""Convert FunctionCallingMessage to ShareGPT message.
84
85 Args:
86 function_format (FunctionCallFormatter[ToolCall, ToolResponse],
87 optional): The function formatter to use. Defaults to None.
88 """
89
90 if function_format is None:
91 function_format = HermesFunctionFormatter()
92 # The role of the message is an unreliable indicator of whether
93 # it is a function call or response, so use result
94 if self.result is None:

Callers 3

from_sharegptMethod · 0.90
_step_tool_callMethod · 0.90
step_tool_call_asyncMethod · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected