24
24
from google .generativeai .client import get_default_text_client
25
25
from google .generativeai .types import text_types
26
26
from google .generativeai .types import model_types
27
+ from google .generativeai .types import safety_types
27
28
28
29
29
30
def _make_text_prompt (prompt : Union [str , dict [str , str ]]) -> glm .TextPrompt :
@@ -44,6 +45,7 @@ def _make_generate_text_request(
44
45
max_output_tokens : Optional [int ] = None ,
45
46
top_p : Optional [int ] = None ,
46
47
top_k : Optional [int ] = None ,
48
+ safety_settings : Optional [List [safety_types .SafetySetting ]] = None ,
47
49
stop_sequences : Union [str , Iterable [str ]] = None ,
48
50
) -> glm .GenerateTextRequest :
49
51
model = model_types .make_model_name (model )
@@ -61,6 +63,7 @@ def _make_generate_text_request(
61
63
max_output_tokens = max_output_tokens ,
62
64
top_p = top_p ,
63
65
top_k = top_k ,
66
+ safety_settings = safety_settings ,
64
67
stop_sequences = stop_sequences ,
65
68
)
66
69
@@ -74,6 +77,7 @@ def generate_text(
74
77
max_output_tokens : Optional [int ] = None ,
75
78
top_p : Optional [float ] = None ,
76
79
top_k : Optional [float ] = None ,
80
+ safety_settings : Optional [Iterable [safety .SafetySetting ]] = None ,
77
81
stop_sequences : Union [str , Iterable [str ]] = None ,
78
82
client : Optional [glm .TextServiceClient ] = None ,
79
83
) -> text_types .Completion :
@@ -103,6 +107,15 @@ def generate_text(
103
107
For example, if the sorted probabilities are
104
108
`[0.5, 0.2, 0.1, 0.1, 0.05, 0.05]` a `top_p` of `0.8` will sample
105
109
as `[0.625, 0.25, 0.125, 0, 0, 0].
110
+ safety_settings: A list of unique `types.SafetySetting` instances for blocking unsafe content.
111
+ These will be enforced on the `prompt` and
112
+ `candidates`. There should not be more than one
113
+ setting for each `types.SafetyCategory` type. The API will block any prompts and
114
+ responses that fail to meet the thresholds set by these settings. This list
115
+ overrides the default settings for each `SafetyCategory` specified in the
116
+ safety_settings. If there is no `types.SafetySetting` for a given
117
+ `SafetyCategory` provided in the list, the API will use the default safety
118
+ setting for that category.
106
119
stop_sequences: A set of up to 5 character sequences that will stop output generation.
107
120
If specified, the API will stop at the first appearance of a stop
108
121
sequence. The stop sequence will not be included as part of the response.
@@ -119,6 +132,7 @@ def generate_text(
119
132
max_output_tokens = max_output_tokens ,
120
133
top_p = top_p ,
121
134
top_k = top_k ,
135
+ safety_settings = safety_settings ,
122
136
stop_sequences = stop_sequences ,
123
137
)
124
138
0 commit comments