From 33f32f1bdf3fedc7b52f35348e3547514aa415fa Mon Sep 17 00:00:00 2001 From: Tai An Date: Tue, 11 Aug 2026 00:09:18 -0700 Subject: [PATCH] feat(generative): expose n on the OpenAI runtime config The GenerativeOpenAI proto message carries an `n` field (number of sequences to generate), and the sibling Databricks runtime config already exposes it, but GenerativeConfig.openai()/azure_openai() never did, so callers could not request more than one generation at query time. Add `n` to the _GenerativeOpenAI model, its _to_grpc() mapping, and both the openai() and azure_openai() factory methods. --- weaviate/collections/classes/generative.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/weaviate/collections/classes/generative.py b/weaviate/collections/classes/generative.py index d5c1a5de2..42ad15510 100644 --- a/weaviate/collections/classes/generative.py +++ b/weaviate/collections/classes/generative.py @@ -353,6 +353,7 @@ class _GenerativeOpenAI(_GenerativeConfigRuntime): is_azure: bool max_tokens: Optional[int] model: Optional[str] + n: Optional[int] presence_penalty: Optional[float] resource_name: Optional[str] stop: Optional[List[str]] @@ -371,6 +372,7 @@ def _to_grpc(self, opts: _GenerativeConfigRuntimeOptions) -> generative_pb2.Gene frequency_penalty=self.frequency_penalty, max_tokens=self.max_tokens, model=self.model, + n=self.n, presence_penalty=self.presence_penalty, resource_name=self.resource_name, stop=_to_text_array(self.stop), @@ -1139,6 +1141,7 @@ def openai( frequency_penalty: Optional[float] = None, max_tokens: Optional[int] = None, model: Optional[str] = None, + n: Optional[int] = None, presence_penalty: Optional[float] = None, reasoning_effort: Optional[Union[OpenAiReasoningEffort, str]] = None, resource_name: Optional[str] = None, @@ -1159,6 +1162,7 @@ def openai( frequency_penalty: The frequency penalty to use. Defaults to `None`, which uses the server-defined default max_tokens: The maximum number of tokens to generate. Defaults to `None`, which uses the server-defined default model: The model to use. Defaults to `None`, which uses the server-defined default + n: The number of sequences to generate. Defaults to `None`, which uses the server-defined default presence_penalty: The presence penalty to use. Defaults to `None`, which uses the server-defined default reasoning_effort: The reasoning effort to use. Defaults to `None`, which uses the server-defined default resource_name: The name of the OpenAI resource to use. Defaults to `None`, which uses the server-defined default @@ -1176,6 +1180,7 @@ def openai( frequency_penalty=frequency_penalty, max_tokens=max_tokens, model=model, + n=n, presence_penalty=presence_penalty, resource_name=resource_name, stop=stop, @@ -1195,6 +1200,7 @@ def azure_openai( frequency_penalty: Optional[float] = None, max_tokens: Optional[int] = None, model: Optional[str] = None, + n: Optional[int] = None, presence_penalty: Optional[float] = None, resource_name: Optional[str] = None, stop: Optional[List[str]] = None, @@ -1213,6 +1219,7 @@ def azure_openai( frequency_penalty: The frequency penalty to use. Defaults to `None`, which uses the server-defined default max_tokens: The maximum number of tokens to generate. Defaults to `None`, which uses the server-defined default model: The model to use. Defaults to `None`, which uses the server-defined default + n: The number of sequences to generate. Defaults to `None`, which uses the server-defined default presence_penalty: The presence penalty to use. Defaults to `None`, which uses the server-defined default resource_name: The name of the OpenAI resource to use. Defaults to `None`, which uses the server-defined default stop: The stop sequences to use. Defaults to `None`, which uses the server-defined default @@ -1228,6 +1235,7 @@ def azure_openai( frequency_penalty=frequency_penalty, max_tokens=max_tokens, model=model, + n=n, presence_penalty=presence_penalty, resource_name=resource_name, stop=stop,