Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add metadata field in _GenerativeModels class methods to pass the metadata down the method chain. #3491

Open
wants to merge 25 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
ca963f6
feat: add metadata field in _GenerativeModels class methods to pass t…
vi3k6i5 Mar 24, 2024
f56e386
fix: update tests params
vi3k6i5 Mar 25, 2024
ba55095
test: add unit test and system test for generate_content with metadat…
vi3k6i5 Mar 25, 2024
de6598a
Copybara import of the project:
gcf-owl-bot[bot] Mar 25, 2024
b35a0a3
chore: Fix bigframes dataframe import breaking change in bigframes 1.0.0
matthew29tang Mar 26, 2024
8631f04
chore: Add required github status to external github for Ray Tests
matthew29tang Mar 26, 2024
3d3f5d1
chore: Compatibility with Pydantic v2 and the pydantic "v1 in v2" mode.
Ark-kun Mar 27, 2024
fbf2be1
feat: Ray on Vertex enables XGBoost register model with custom versio…
yinghsienwu Mar 27, 2024
d2223a4
chore: Fix get_experiments_df system test.
vertex-sdk-bot Mar 27, 2024
076384d
feat: Improve get_experiment_df execution speed
vertex-sdk-bot Mar 27, 2024
87bea86
feat: Add safety filter levels, watermark support and person generati…
vertex-sdk-bot Mar 27, 2024
4fde85a
chore: Add bigquery pin to setup.py to avoid pyarrow breaking change
matthew29tang Mar 28, 2024
f407519
chore(main): release 1.45.0 (#3443)
release-please[bot] Mar 28, 2024
438cd44
Revert "chore(main): release 1.45.0 (#3443)" (#3513)
sasha-gitg Mar 28, 2024
4084092
Copybara import of the project:
release-please[bot] Mar 28, 2024
501120e
chore: LVM - Update a few flag values and interaction between differe…
vertex-sdk-bot Mar 28, 2024
4db5455
feat: Python SDK for Vertex Feature Store.
vertex-sdk-bot Mar 29, 2024
dce233b
feat: GenAI - Automatic Function Calling feature
Ark-kun Mar 29, 2024
5acf0d4
chore: update supporting XGBoost version of the pre-built serving con…
yinghsienwu Mar 30, 2024
8673aa1
chore(main): release 1.46.0 (#3522)
release-please[bot] Apr 1, 2024
a99366c
Merge branch 'main' into feat/extra_header
vi3k6i5 Apr 1, 2024
3a7bb29
feat: add metadata field in _GenerativeModels class methods to pass t…
vi3k6i5 Mar 24, 2024
ca1306b
test: add unit test and system test for generate_content with metadat…
vi3k6i5 Mar 25, 2024
c78c480
fix: update tests params
vi3k6i5 Mar 25, 2024
40468d6
test: add unit test and system test for generate_content with metadat…
vi3k6i5 Mar 25, 2024
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
21 changes: 21 additions & 0 deletions tests/system/vertexai/test_generative_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,16 @@ def test_generate_content_from_text(self):
)
assert response.text

def test_generate_content_from_text_with_metadata(self):
model = generative_models.GenerativeModel("gemini-pro")
metadata = (("x-metadata-key", "metadata-value"),)
response = model.generate_content(
"Why is sky blue?",
generation_config=generative_models.GenerationConfig(temperature=0),
metadata=metadata
)
assert response.text

@pytest.mark.asyncio
async def test_generate_content_async(self):
model = generative_models.GenerativeModel("gemini-pro")
Expand All @@ -99,6 +109,17 @@ async def test_generate_content_async(self):
)
assert response.text

@pytest.mark.asyncio
async def test_generate_content_async_with_metadata(self):
model = generative_models.GenerativeModel("gemini-pro")
metadata = (("x-metadata-key", "metadata-value"),)
response = await model.generate_content_async(
"Why is sky blue?",
generation_config=generative_models.GenerationConfig(temperature=0),
metadata=metadata,
)
assert response.text

def test_generate_content_streaming(self):
model = generative_models.GenerativeModel("gemini-pro")
stream = model.generate_content(
Expand Down
10 changes: 7 additions & 3 deletions tests/unit/vertexai/test_generative_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@

# pylint: disable=protected-access,bad-continuation
import pytest
from typing import Iterable, MutableSequence, Optional
from typing import Iterable, MutableSequence, Optional, Sequence, Tuple
from unittest import mock

import vertexai
Expand Down Expand Up @@ -117,6 +117,7 @@ def mock_generate_content(
*,
model: Optional[str] = None,
contents: Optional[MutableSequence[gapic_content_types.Content]] = None,
metadata: Sequence[Tuple[str, str]] = (),
) -> Iterable[gapic_prediction_service_types.GenerateContentResponse]:
last_message_part = request.contents[-1].parts[0]
should_fail = last_message_part.text and "Please fail" in last_message_part.text
Expand Down Expand Up @@ -247,9 +248,10 @@ def mock_stream_generate_content(
*,
model: Optional[str] = None,
contents: Optional[MutableSequence[gapic_content_types.Content]] = None,
metadata: Sequence[Tuple[str, str]] = (),
) -> Iterable[gapic_prediction_service_types.GenerateContentResponse]:
yield mock_generate_content(
self=self, request=request, model=model, contents=contents
self=self, request=request, model=model, contents=contents, metadata=metadata
)


Expand Down Expand Up @@ -307,6 +309,7 @@ def test_generate_content(self, generative_models: generative_models):
max_output_tokens=200,
stop_sequences=["\n\n\n"],
),
metadata=(("x-metadata-key", "metadata-value"),)
)
assert response2.text

Expand Down Expand Up @@ -339,7 +342,8 @@ def test_chat_send_message(self, generative_models: generative_models):
chat = model.start_chat()
response1 = chat.send_message("Why is sky blue?")
assert response1.text
response2 = chat.send_message("Is sky blue on other planets?")
metadata = (("x-metadata-key", "metadata-value"),)
response2 = chat.send_message("Is sky blue on other planets?", metadata=metadata)
assert response2.text

@mock.patch.object(
Expand Down
Loading