in google/generativeai/types/retriever_types.py [0:0]
def _to_proto(self):
kwargs = {}
if isinstance(self.value, str):
kwargs["string_value"] = self.value
elif isinstance(self.value, Iterable):
if isinstance(self.value, Mapping):
# If already converted to a protos.StringList, get the values
kwargs["string_list_value"] = self.value
else:
kwargs["string_list_value"] = protos.StringList(values=self.value)
elif isinstance(self.value, (int, float)):
kwargs["numeric_value"] = float(self.value)
else:
raise ValueError(
f"Invalid value type: The value for a custom_metadata specification must be either a list of string values, a string, or an integer/float. Received: '{self.value}' of type {type(self.value).__name__}."
)
return protos.CustomMetadata(key=self.key, **kwargs)