in aidial_adapter_bedrock/llm/tools/tools_config.py [0:0]
def validate_messages(request: AzureChatCompletionRequest) -> None:
decl_tools = request.tools is not None
decl_functions = request.functions is not None
if decl_functions and decl_tools:
raise ValidationError("Both functions and tools are not allowed")
for message in request.messages:
if message.role == Role.ASSISTANT:
use_tools = message.tool_calls is not None
if use_tools and not decl_tools:
raise ValidationError(
"Assistant message uses tools, but tools are not declared"
)
use_functions = message.function_call is not None
if use_functions and not decl_functions:
raise ValidationError(
"Assistant message uses functions, but functions are not declared"
)
if message.role == Role.FUNCTION:
if not decl_functions:
raise ValidationError(
"Function message is used, but functions are not declared"
)
if message.role == Role.TOOL:
if not decl_tools:
raise ValidationError(
"Tool message is used, but tools are not declared"
)