|
|
|
|
@ -116,26 +116,33 @@ class GoogleLargeLanguageModel(LargeLanguageModel):
|
|
|
|
|
:param tools: tool messages
|
|
|
|
|
:return: glm tools
|
|
|
|
|
"""
|
|
|
|
|
return glm.Tool(
|
|
|
|
|
function_declarations=[
|
|
|
|
|
glm.FunctionDeclaration(
|
|
|
|
|
name=tool.name,
|
|
|
|
|
parameters=glm.Schema(
|
|
|
|
|
type=glm.Type.OBJECT,
|
|
|
|
|
properties={
|
|
|
|
|
key: {
|
|
|
|
|
"type_": value.get("type", "string").upper(),
|
|
|
|
|
"description": value.get("description", ""),
|
|
|
|
|
"enum": value.get("enum", []),
|
|
|
|
|
}
|
|
|
|
|
for key, value in tool.parameters.get("properties", {}).items()
|
|
|
|
|
},
|
|
|
|
|
required=tool.parameters.get("required", []),
|
|
|
|
|
),
|
|
|
|
|
function_declarations = []
|
|
|
|
|
for tool in tools:
|
|
|
|
|
properties = {}
|
|
|
|
|
for key, value in tool.parameters.get("properties", {}).items():
|
|
|
|
|
properties[key] = {
|
|
|
|
|
"type_": glm.Type.STRING,
|
|
|
|
|
"description": value.get("description", ""),
|
|
|
|
|
"enum": value.get("enum", []),
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if properties:
|
|
|
|
|
parameters = glm.Schema(
|
|
|
|
|
type=glm.Type.OBJECT,
|
|
|
|
|
properties=properties,
|
|
|
|
|
required=tool.parameters.get("required", []),
|
|
|
|
|
)
|
|
|
|
|
for tool in tools
|
|
|
|
|
]
|
|
|
|
|
)
|
|
|
|
|
else:
|
|
|
|
|
parameters = None
|
|
|
|
|
|
|
|
|
|
function_declaration = glm.FunctionDeclaration(
|
|
|
|
|
name=tool.name,
|
|
|
|
|
parameters=parameters,
|
|
|
|
|
description=tool.description,
|
|
|
|
|
)
|
|
|
|
|
function_declarations.append(function_declaration)
|
|
|
|
|
|
|
|
|
|
return glm.Tool(function_declarations=function_declarations)
|
|
|
|
|
|
|
|
|
|
def validate_credentials(self, model: str, credentials: dict) -> None:
|
|
|
|
|
"""
|
|
|
|
|
|