Feature/Add support for per-request metadata/headers
Description of the change
PR introduces support for setting per-request metadata/headers in GenerativeModel.generate_content. Previously, headers could only be set at the client configuration level using default_metadata, making it difficult to specify user-specific headers dynamically for each request. This enhancement improves flexibility, particularly for integrations with proxy services like Helicone that require user-specific headers.
Technical
Added a new parameter extra_headers: dict[str, str] | None .
Ensured that extra_headers are properly merged with existing request metadata.
Preserved backward compatibility by making extra_headers optional.
Updated function documentation to reflect the new parameter.
closes #698
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).
View this failed invocation of the CLA check for more information.
For the most up to date status, view the checks section at the bottom of the pull request.
@chitalian, I manually checked this feature and it works. As of now, I haven't implemented any test cases because I want you to review it first. If the feature makes sense and receives your approval, I will create test cases with your permission. Thank you!
Looks good @drona-gyawali ! Thanks for making this fix