Skip to content

Commit c7e3f07

Browse files
Ark-kuncopybara-github
authored andcommitted
feat: GenAI - Release the GenerativeModel to GA
PiperOrigin-RevId: 605495995
1 parent ecc6454 commit c7e3f07

File tree

4 files changed

+78
-6
lines changed

4 files changed

+78
-6
lines changed

tests/system/vertexai/test_generative_models.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
from google import auth
2424
from google.cloud import aiplatform
2525
from tests.system.aiplatform import e2e_base
26-
from vertexai.preview import generative_models
26+
from vertexai import generative_models
2727

2828

2929
class TestGenerativeModels(e2e_base.TestEndToEnd):

tests/unit/vertexai/test_generative_models.py

+22-5
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222

2323
import vertexai
2424
from google.cloud.aiplatform import initializer
25-
from vertexai.preview import generative_models
25+
from vertexai import generative_models
26+
from vertexai.preview import generative_models as preview_generative_models
2627
from vertexai.generative_models._generative_models import (
2728
prediction_service,
2829
gapic_prediction_service_types,
@@ -231,7 +232,11 @@ def teardown_method(self):
231232
attribute="generate_content",
232233
new=mock_generate_content,
233234
)
234-
def test_generate_content(self):
235+
@pytest.mark.parametrize(
236+
"generative_models",
237+
[generative_models, preview_generative_models],
238+
)
239+
def test_generate_content(self, generative_models: generative_models):
235240
model = generative_models.GenerativeModel("gemini-pro")
236241
response = model.generate_content("Why is sky blue?")
237242
assert response.text
@@ -254,7 +259,11 @@ def test_generate_content(self):
254259
attribute="stream_generate_content",
255260
new=mock_stream_generate_content,
256261
)
257-
def test_generate_content_streaming(self):
262+
@pytest.mark.parametrize(
263+
"generative_models",
264+
[generative_models, preview_generative_models],
265+
)
266+
def test_generate_content_streaming(self, generative_models: generative_models):
258267
model = generative_models.GenerativeModel("gemini-pro")
259268
stream = model.generate_content("Why is sky blue?", stream=True)
260269
for chunk in stream:
@@ -265,7 +274,11 @@ def test_generate_content_streaming(self):
265274
attribute="generate_content",
266275
new=mock_generate_content,
267276
)
268-
def test_chat_send_message(self):
277+
@pytest.mark.parametrize(
278+
"generative_models",
279+
[generative_models, preview_generative_models],
280+
)
281+
def test_chat_send_message(self, generative_models: generative_models):
269282
model = generative_models.GenerativeModel("gemini-pro")
270283
chat = model.start_chat()
271284
response1 = chat.send_message("Why is sky blue?")
@@ -278,7 +291,11 @@ def test_chat_send_message(self):
278291
attribute="generate_content",
279292
new=mock_generate_content,
280293
)
281-
def test_chat_function_calling(self):
294+
@pytest.mark.parametrize(
295+
"generative_models",
296+
[generative_models, preview_generative_models],
297+
)
298+
def test_chat_function_calling(self, generative_models: generative_models):
282299
get_current_weather_func = generative_models.FunctionDeclaration(
283300
name="get_current_weather",
284301
description="Get the current weather in a given location",
+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# Copyright 2023 Google LLC
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
#
15+
"""Classes for working with the Gemini models."""
16+
17+
# We just want to re-export certain classes
18+
# pylint: disable=g-multiple-import,g-importing-member
19+
from vertexai.generative_models._generative_models import (
20+
GenerativeModel,
21+
GenerationConfig,
22+
GenerationResponse,
23+
Candidate,
24+
ChatSession,
25+
Content,
26+
FinishReason,
27+
FunctionDeclaration,
28+
HarmCategory,
29+
HarmBlockThreshold,
30+
Image,
31+
Part,
32+
ResponseBlockedError,
33+
Tool,
34+
)
35+
36+
__all__ = [
37+
"GenerationConfig",
38+
"GenerativeModel",
39+
"GenerationResponse",
40+
"Candidate",
41+
"ChatSession",
42+
"Content",
43+
"FinishReason",
44+
"FunctionDeclaration",
45+
"HarmCategory",
46+
"HarmBlockThreshold",
47+
"Image",
48+
"Part",
49+
"ResponseBlockedError",
50+
"Tool",
51+
]

vertexai/generative_models/_generative_models.py

+4
Original file line numberDiff line numberDiff line change
@@ -1896,6 +1896,10 @@ def _tune_model(
18961896
return job
18971897

18981898

1899+
class GenerativeModel(_GenerativeModel):
1900+
__module__ = "vertexai.generative_models"
1901+
1902+
18991903
class _PreviewGenerativeModel(_GenerativeModel, _TunableGenerativeModelMixin):
19001904
__name__ = "GenerativeModel"
19011905
__module__ = "vertexai.preview.generative_models"

0 commit comments

Comments
 (0)