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

generate_content_async broken in Colab? #499

Open
ochafik opened this issue Aug 7, 2024 · 2 comments
Open

generate_content_async broken in Colab? #499

ochafik opened this issue Aug 7, 2024 · 2 comments
Labels
component:other Questions unrelated to SDK status:triaged Issue/PR triaged to the corresponding sub-team type:bug Something isn't working

Comments

@ochafik
Copy link

ochafik commented Aug 7, 2024

Description of the bug:

Calling GenerativeModel.generate_content_async in Colab results in the following error:

[/usr/local/lib/python3.10/dist-packages/google/generativeai/generative_models.py](https://localhost:8080/#) in generate_content_async(self, contents, generation_config, safety_settings, stream, tools, tool_config, request_options)
    383                 return await generation_types.AsyncGenerateContentResponse.from_aiterator(iterator)
    384             else:
--> 385                 response = await self._async_client.generate_content(
    386                     request,
    387                     **request_options,

[/usr/local/lib/python3.10/dist-packages/google/ai/generativelanguage_v1beta/services/generative_service/async_client.py](https://localhost:8080/#) in generate_content(self, request, model, contents, retry, timeout, metadata)
    404 
    405         # Send the request.
--> 406         response = await rpc(
    407             request,
    408             retry=retry,

TypeError: object GenerateContentResponse can't be used in 'await' expression
show colab cell code
!pip install -U -q google-generativeai
# installs google-generativeai==0.7.2

# The following two lines don't change anything:
# import nest_asyncio
# nest_asyncio.apply()

import asyncio
import google.generativeai as genai

from google.colab import userdata
GOOGLE_API_KEY=userdata.get('GOOGLE_API_KEY')

genai.configure(api_key=GOOGLE_API_KEY)

model = genai.GenerativeModel(model_name="models/gemini-1.5-pro-latest")

async def main():
  print(await model.generate_content_async("Tell me a joke"))

await main()

The ~same code works well outside Colab (tested Python 3.10.12 = same as Colab, 3.11 and 3.12)

show standalone code that works
'''
  This nearly identical code works w/ Python 3.10.12 (same as Colab), 3.11, 3.12

  conda create -n gemini-bug-3.10.12 -y
  conda activate gemini-bug-3.10.12
  pip install -U -q google-generativeai
  GOOGLE_API_KEY=... python bug.py
'''

import asyncio
import google.generativeai as genai

import os
GOOGLE_API_KEY=os.environ['GOOGLE_API_KEY']

genai.configure(api_key=GOOGLE_API_KEY)

model = genai.GenerativeModel(model_name="models/gemini-1.5-pro-latest")

async def main():
  print(await model.generate_content_async("Tell me a joke"))

if __name__ == "__main__":
  asyncio.run(main())

Full repro: https://gist.github.com/ochafik/f7472295d7b3f42824c8458f32bfa58b

Actual vs expected behavior:

Unexpected exception in Colab (works outside Colab)

Any other information you'd like to share?

No response

@MarkDaoust
Copy link
Collaborator

Interesting! Thanks for reporting this.

Colab sets genai.configure(transport="rest"), the problem seems to be async+rest transport.

In standard python this error is reproducible if I set transport="rest".

So that seems like an issue with the underlying generated client library.

@MarkDaoust
Copy link
Collaborator

This is: googleapis/gapic-generator-python#1962

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component:other Questions unrelated to SDK status:triaged Issue/PR triaged to the corresponding sub-team type:bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants