Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions test/collection/test_classes_generative.py
Original file line number Diff line number Diff line change
Expand Up @@ -275,6 +275,47 @@ def test_generative_parameters_images_parsing(
),
),
),
(
GenerativeConfig.google_vertex(
api_endpoint="http://localhost:8080",
project_id="my-project",
endpoint_id="12345678901234567890123456789012",
region="us-west1",
frequency_penalty=0.5,
max_tokens=100,
model="text-to-image",
presence_penalty=0.5,
temperature=0.5,
top_k=50,
top_p=0.9,
stop_sequences=["\n"],
location="us-central1",
)._to_grpc(
_GenerativeConfigRuntimeOptions(
return_metadata=True, images=[LOGO_ENCODED], image_properties=["image"]
)
),
generative_pb2.GenerativeProvider(
return_metadata=True,
google=generative_pb2.GenerativeGoogle(
api_endpoint="localhost:8080",
endpoint_id="12345678901234567890123456789012",
frequency_penalty=0.5,
max_tokens=100,
model="text-to-image",
presence_penalty=0.5,
project_id="my-project",
region="us-west1",
location="us-central1",
stop_sequences=base_pb2.TextArray(values=["\n"]),
temperature=0.5,
top_k=50,
top_p=0.9,
images=base_pb2.TextArray(values=[LOGO_ENCODED]),
image_properties=base_pb2.TextArray(values=["image"]),
),
),
),
(
GenerativeConfig.mistral(
base_url="http://localhost:8080",
Expand Down
14 changes: 13 additions & 1 deletion weaviate/collections/classes/generative.py
Original file line number Diff line number Diff line change
Expand Up @@ -423,6 +423,7 @@ class _GenerativeGoogle(_GenerativeConfigRuntime):
presence_penalty: Optional[float]
project_id: Optional[str]
region: Optional[str]
location: Optional[str]
stop_sequences: Optional[List[str]]
temperature: Optional[float]
top_k: Optional[int]
Expand All @@ -447,6 +448,7 @@ def _to_grpc(self, opts: _GenerativeConfigRuntimeOptions) -> generative_pb2.Gene
presence_penalty=self.presence_penalty,
project_id=self.project_id,
region=self.region,
location=self.location,
stop_sequences=_to_text_array(self.stop_sequences),
temperature=self.temperature,
top_k=self.top_k,
Expand Down Expand Up @@ -945,6 +947,7 @@ def google(
presence_penalty=presence_penalty,
project_id=project_id,
region=region,
location=None,
stop_sequences=stop_sequences,
temperature=temperature,
top_k=top_k,
Expand All @@ -966,6 +969,7 @@ def google_vertex(
top_k: Optional[int] = None,
top_p: Optional[float] = None,
stop_sequences: Optional[List[str]] = None,
location: Optional[str] = None,
) -> _GenerativeConfigRuntime:
"""Create a `_GenerativeGoogle` object for use when performing AI generation using the `generative-google` module.

Expand All @@ -980,11 +984,17 @@ def google_vertex(
model: The model ID to use. 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
project_id: The project ID to use. Defaults to `None`, which uses the server-defined default
region: The region to use. Defaults to `None`, which uses the server-defined default
region: The region the Vertex AI endpoint is served from. For `gemini*` models this selects the API host
(`<region>-aiplatform.googleapis.com`); for the other models the host comes from `api_endpoint` instead.
Defaults to `None`, which uses the server-defined default
stop_sequences: The stop sequences to use. Defaults to `None`, which uses the server-defined default
temperature: The temperature to use. Defaults to `None`, which uses the server-defined default
top_k: The top K to use. Defaults to `None`, which uses the server-defined default
top_p: The top P to use. Defaults to `None`, which uses the server-defined default
location: The Vertex AI location, i.e. the `locations/<location>` segment of the request URL. This is
distinct from `region`: `region` picks the host, `location` picks the path. For `gemini*` models the
special value `"global"` selects the region-less `aiplatform.googleapis.com` host, so `region` is then
unused. Defaults to `None`, which uses the server-defined default of `us-central1`
"""
return _GenerativeGoogle(
api_endpoint=TypeAdapter(AnyHttpUrl).validate_python(api_endpoint)
Expand All @@ -997,6 +1007,7 @@ def google_vertex(
presence_penalty=presence_penalty,
project_id=project_id,
region=region,
location=location,
stop_sequences=stop_sequences,
temperature=temperature,
top_k=top_k,
Expand Down Expand Up @@ -1041,6 +1052,7 @@ def google_gemini(
presence_penalty=presence_penalty,
project_id=None,
region=None,
location=None,
stop_sequences=stop_sequences,
temperature=temperature,
top_k=top_k,
Expand Down
160 changes: 80 additions & 80 deletions weaviate/proto/v1/v4216/v1/generative_pb2.py

Large diffs are not rendered by default.

6 changes: 4 additions & 2 deletions weaviate/proto/v1/v4216/v1/generative_pb2.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,7 @@ class GenerativeOpenAI(_message.Message):
def __init__(self, frequency_penalty: _Optional[float] = ..., max_tokens: _Optional[int] = ..., model: _Optional[str] = ..., n: _Optional[int] = ..., presence_penalty: _Optional[float] = ..., stop: _Optional[_Union[_base_pb2.TextArray, _Mapping]] = ..., temperature: _Optional[float] = ..., top_p: _Optional[float] = ..., base_url: _Optional[str] = ..., api_version: _Optional[str] = ..., resource_name: _Optional[str] = ..., deployment_id: _Optional[str] = ..., is_azure: bool = ..., images: _Optional[_Union[_base_pb2.TextArray, _Mapping]] = ..., image_properties: _Optional[_Union[_base_pb2.TextArray, _Mapping]] = ..., reasoning_effort: _Optional[_Union[GenerativeOpenAI.ReasoningEffort, str]] = ..., verbosity: _Optional[_Union[GenerativeOpenAI.Verbosity, str]] = ...) -> None: ...

class GenerativeGoogle(_message.Message):
__slots__ = ["frequency_penalty", "max_tokens", "model", "presence_penalty", "temperature", "top_k", "top_p", "stop_sequences", "api_endpoint", "project_id", "endpoint_id", "region", "images", "image_properties"]
__slots__ = ["frequency_penalty", "max_tokens", "model", "presence_penalty", "temperature", "top_k", "top_p", "stop_sequences", "api_endpoint", "project_id", "endpoint_id", "region", "images", "image_properties", "location"]
FREQUENCY_PENALTY_FIELD_NUMBER: _ClassVar[int]
MAX_TOKENS_FIELD_NUMBER: _ClassVar[int]
MODEL_FIELD_NUMBER: _ClassVar[int]
Expand All @@ -269,6 +269,7 @@ class GenerativeGoogle(_message.Message):
REGION_FIELD_NUMBER: _ClassVar[int]
IMAGES_FIELD_NUMBER: _ClassVar[int]
IMAGE_PROPERTIES_FIELD_NUMBER: _ClassVar[int]
LOCATION_FIELD_NUMBER: _ClassVar[int]
frequency_penalty: float
max_tokens: int
model: str
Expand All @@ -283,7 +284,8 @@ class GenerativeGoogle(_message.Message):
region: str
images: _base_pb2.TextArray
image_properties: _base_pb2.TextArray
def __init__(self, frequency_penalty: _Optional[float] = ..., max_tokens: _Optional[int] = ..., model: _Optional[str] = ..., presence_penalty: _Optional[float] = ..., temperature: _Optional[float] = ..., top_k: _Optional[int] = ..., top_p: _Optional[float] = ..., stop_sequences: _Optional[_Union[_base_pb2.TextArray, _Mapping]] = ..., api_endpoint: _Optional[str] = ..., project_id: _Optional[str] = ..., endpoint_id: _Optional[str] = ..., region: _Optional[str] = ..., images: _Optional[_Union[_base_pb2.TextArray, _Mapping]] = ..., image_properties: _Optional[_Union[_base_pb2.TextArray, _Mapping]] = ...) -> None: ...
location: str
def __init__(self, frequency_penalty: _Optional[float] = ..., max_tokens: _Optional[int] = ..., model: _Optional[str] = ..., presence_penalty: _Optional[float] = ..., temperature: _Optional[float] = ..., top_k: _Optional[int] = ..., top_p: _Optional[float] = ..., stop_sequences: _Optional[_Union[_base_pb2.TextArray, _Mapping]] = ..., api_endpoint: _Optional[str] = ..., project_id: _Optional[str] = ..., endpoint_id: _Optional[str] = ..., region: _Optional[str] = ..., images: _Optional[_Union[_base_pb2.TextArray, _Mapping]] = ..., image_properties: _Optional[_Union[_base_pb2.TextArray, _Mapping]] = ..., location: _Optional[str] = ...) -> None: ...

class GenerativeDatabricks(_message.Message):
__slots__ = ["endpoint", "model", "frequency_penalty", "log_probs", "top_log_probs", "max_tokens", "n", "presence_penalty", "stop", "temperature", "top_p"]
Expand Down
160 changes: 80 additions & 80 deletions weaviate/proto/v1/v5261/v1/generative_pb2.py

Large diffs are not rendered by default.

6 changes: 4 additions & 2 deletions weaviate/proto/v1/v5261/v1/generative_pb2.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,7 @@ class GenerativeOpenAI(_message.Message):
def __init__(self, frequency_penalty: _Optional[float] = ..., max_tokens: _Optional[int] = ..., model: _Optional[str] = ..., n: _Optional[int] = ..., presence_penalty: _Optional[float] = ..., stop: _Optional[_Union[_base_pb2.TextArray, _Mapping]] = ..., temperature: _Optional[float] = ..., top_p: _Optional[float] = ..., base_url: _Optional[str] = ..., api_version: _Optional[str] = ..., resource_name: _Optional[str] = ..., deployment_id: _Optional[str] = ..., is_azure: bool = ..., images: _Optional[_Union[_base_pb2.TextArray, _Mapping]] = ..., image_properties: _Optional[_Union[_base_pb2.TextArray, _Mapping]] = ..., reasoning_effort: _Optional[_Union[GenerativeOpenAI.ReasoningEffort, str]] = ..., verbosity: _Optional[_Union[GenerativeOpenAI.Verbosity, str]] = ...) -> None: ...

class GenerativeGoogle(_message.Message):
__slots__ = ("frequency_penalty", "max_tokens", "model", "presence_penalty", "temperature", "top_k", "top_p", "stop_sequences", "api_endpoint", "project_id", "endpoint_id", "region", "images", "image_properties")
__slots__ = ("frequency_penalty", "max_tokens", "model", "presence_penalty", "temperature", "top_k", "top_p", "stop_sequences", "api_endpoint", "project_id", "endpoint_id", "region", "images", "image_properties", "location")
FREQUENCY_PENALTY_FIELD_NUMBER: _ClassVar[int]
MAX_TOKENS_FIELD_NUMBER: _ClassVar[int]
MODEL_FIELD_NUMBER: _ClassVar[int]
Expand All @@ -269,6 +269,7 @@ class GenerativeGoogle(_message.Message):
REGION_FIELD_NUMBER: _ClassVar[int]
IMAGES_FIELD_NUMBER: _ClassVar[int]
IMAGE_PROPERTIES_FIELD_NUMBER: _ClassVar[int]
LOCATION_FIELD_NUMBER: _ClassVar[int]
frequency_penalty: float
max_tokens: int
model: str
Expand All @@ -283,7 +284,8 @@ class GenerativeGoogle(_message.Message):
region: str
images: _base_pb2.TextArray
image_properties: _base_pb2.TextArray
def __init__(self, frequency_penalty: _Optional[float] = ..., max_tokens: _Optional[int] = ..., model: _Optional[str] = ..., presence_penalty: _Optional[float] = ..., temperature: _Optional[float] = ..., top_k: _Optional[int] = ..., top_p: _Optional[float] = ..., stop_sequences: _Optional[_Union[_base_pb2.TextArray, _Mapping]] = ..., api_endpoint: _Optional[str] = ..., project_id: _Optional[str] = ..., endpoint_id: _Optional[str] = ..., region: _Optional[str] = ..., images: _Optional[_Union[_base_pb2.TextArray, _Mapping]] = ..., image_properties: _Optional[_Union[_base_pb2.TextArray, _Mapping]] = ...) -> None: ...
location: str
def __init__(self, frequency_penalty: _Optional[float] = ..., max_tokens: _Optional[int] = ..., model: _Optional[str] = ..., presence_penalty: _Optional[float] = ..., temperature: _Optional[float] = ..., top_k: _Optional[int] = ..., top_p: _Optional[float] = ..., stop_sequences: _Optional[_Union[_base_pb2.TextArray, _Mapping]] = ..., api_endpoint: _Optional[str] = ..., project_id: _Optional[str] = ..., endpoint_id: _Optional[str] = ..., region: _Optional[str] = ..., images: _Optional[_Union[_base_pb2.TextArray, _Mapping]] = ..., image_properties: _Optional[_Union[_base_pb2.TextArray, _Mapping]] = ..., location: _Optional[str] = ...) -> None: ...

class GenerativeDatabricks(_message.Message):
__slots__ = ("endpoint", "model", "frequency_penalty", "log_probs", "top_log_probs", "max_tokens", "n", "presence_penalty", "stop", "temperature", "top_p")
Expand Down
160 changes: 80 additions & 80 deletions weaviate/proto/v1/v6300/v1/generative_pb2.py

Large diffs are not rendered by default.

6 changes: 4 additions & 2 deletions weaviate/proto/v1/v6300/v1/generative_pb2.pyi
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,7 @@ class GenerativeOpenAI(_message.Message):
def __init__(self, frequency_penalty: _Optional[float] = ..., max_tokens: _Optional[int] = ..., model: _Optional[str] = ..., n: _Optional[int] = ..., presence_penalty: _Optional[float] = ..., stop: _Optional[_Union[_base_pb2.TextArray, _Mapping]] = ..., temperature: _Optional[float] = ..., top_p: _Optional[float] = ..., base_url: _Optional[str] = ..., api_version: _Optional[str] = ..., resource_name: _Optional[str] = ..., deployment_id: _Optional[str] = ..., is_azure: bool = ..., images: _Optional[_Union[_base_pb2.TextArray, _Mapping]] = ..., image_properties: _Optional[_Union[_base_pb2.TextArray, _Mapping]] = ..., reasoning_effort: _Optional[_Union[GenerativeOpenAI.ReasoningEffort, str]] = ..., verbosity: _Optional[_Union[GenerativeOpenAI.Verbosity, str]] = ...) -> None: ...

class GenerativeGoogle(_message.Message):
__slots__ = ("frequency_penalty", "max_tokens", "model", "presence_penalty", "temperature", "top_k", "top_p", "stop_sequences", "api_endpoint", "project_id", "endpoint_id", "region", "images", "image_properties")
__slots__ = ("frequency_penalty", "max_tokens", "model", "presence_penalty", "temperature", "top_k", "top_p", "stop_sequences", "api_endpoint", "project_id", "endpoint_id", "region", "images", "image_properties", "location")
FREQUENCY_PENALTY_FIELD_NUMBER: _ClassVar[int]
MAX_TOKENS_FIELD_NUMBER: _ClassVar[int]
MODEL_FIELD_NUMBER: _ClassVar[int]
Expand All @@ -270,6 +270,7 @@ class GenerativeGoogle(_message.Message):
REGION_FIELD_NUMBER: _ClassVar[int]
IMAGES_FIELD_NUMBER: _ClassVar[int]
IMAGE_PROPERTIES_FIELD_NUMBER: _ClassVar[int]
LOCATION_FIELD_NUMBER: _ClassVar[int]
frequency_penalty: float
max_tokens: int
model: str
Expand All @@ -284,7 +285,8 @@ class GenerativeGoogle(_message.Message):
region: str
images: _base_pb2.TextArray
image_properties: _base_pb2.TextArray
def __init__(self, frequency_penalty: _Optional[float] = ..., max_tokens: _Optional[int] = ..., model: _Optional[str] = ..., presence_penalty: _Optional[float] = ..., temperature: _Optional[float] = ..., top_k: _Optional[int] = ..., top_p: _Optional[float] = ..., stop_sequences: _Optional[_Union[_base_pb2.TextArray, _Mapping]] = ..., api_endpoint: _Optional[str] = ..., project_id: _Optional[str] = ..., endpoint_id: _Optional[str] = ..., region: _Optional[str] = ..., images: _Optional[_Union[_base_pb2.TextArray, _Mapping]] = ..., image_properties: _Optional[_Union[_base_pb2.TextArray, _Mapping]] = ...) -> None: ...
location: str
def __init__(self, frequency_penalty: _Optional[float] = ..., max_tokens: _Optional[int] = ..., model: _Optional[str] = ..., presence_penalty: _Optional[float] = ..., temperature: _Optional[float] = ..., top_k: _Optional[int] = ..., top_p: _Optional[float] = ..., stop_sequences: _Optional[_Union[_base_pb2.TextArray, _Mapping]] = ..., api_endpoint: _Optional[str] = ..., project_id: _Optional[str] = ..., endpoint_id: _Optional[str] = ..., region: _Optional[str] = ..., images: _Optional[_Union[_base_pb2.TextArray, _Mapping]] = ..., image_properties: _Optional[_Union[_base_pb2.TextArray, _Mapping]] = ..., location: _Optional[str] = ...) -> None: ...

class GenerativeDatabricks(_message.Message):
__slots__ = ("endpoint", "model", "frequency_penalty", "log_probs", "top_log_probs", "max_tokens", "n", "presence_penalty", "stop", "temperature", "top_p")
Expand Down