@@ -34,23 +34,30 @@ def gemini(_: httpx.AsyncClient, _tmp_path: Path) -> Model:
34
34
return GoogleModel ('gemini-1.5-pro' )
35
35
36
36
37
- def vertexai (_ : httpx .AsyncClient , tmp_path : Path ) -> Model :
37
+ def vertexai (http_client : httpx .AsyncClient , tmp_path : Path ) -> Model :
38
38
from google .oauth2 import service_account
39
39
40
40
from pydantic_ai .models .google import GoogleModel
41
41
from pydantic_ai .providers .google import GoogleProvider
42
42
43
- service_account_content = os .environ ['GOOGLE_SERVICE_ACCOUNT_CONTENT' ]
44
- project_id = json .loads (service_account_content )['project_id' ]
45
- service_account_path = tmp_path / 'service_account.json'
46
- service_account_path .write_text (service_account_content )
43
+ if service_account_path := os .environ .get ('GOOGLE_APPLICATION_CREDENTIALS' ):
44
+ project_id = json .loads (Path (service_account_path ).read_text ())['project_id' ]
45
+ elif service_account_content := os .environ .get ('GOOGLE_SERVICE_ACCOUNT_CONTENT' ):
46
+ project_id = json .loads (service_account_content )['project_id' ]
47
+ service_account_path = tmp_path / 'service_account.json'
48
+ service_account_path .write_text (service_account_content )
49
+ else :
50
+ pytest .skip (
51
+ 'VertexAI live test requires GOOGLE_APPLICATION_CREDENTIALS or GOOGLE_SERVICE_ACCOUNT_CONTENT to be set'
52
+ )
47
53
48
54
credentials = service_account .Credentials .from_service_account_file ( # type: ignore[reportUnknownReturnType]
49
55
service_account_path ,
50
56
scopes = ['https://www.googleapis.com/auth/cloud-platform' ],
51
57
)
52
58
provider = GoogleProvider (credentials = credentials , project = project_id )
53
- return GoogleModel ('gemini-1.5-flash' , provider = provider )
59
+ provider .client .aio ._api_client ._async_httpx_client = http_client # type: ignore
60
+ return GoogleModel ('gemini-2.0-flash' , provider = provider )
54
61
55
62
56
63
def groq (http_client : httpx .AsyncClient , _tmp_path : Path ) -> Model :
0 commit comments