mirror of
https://github.com/hwchase17/langchain.git
synced 2025-07-02 03:15:11 +00:00
langchain-google-genai[patch]: Add support for end_point and transport parameters to the Gemini API (#15532)
Add support for end_point and transport parameters to the Gemini API --------- Co-authored-by: yangenfeng <yangenfeng@xiaoniangao.com> Co-authored-by: Erick Friis <erick@langchain.dev>
This commit is contained in:
parent
9b3962fc25
commit
13b90232c1
@ -466,6 +466,14 @@ Supported examples:
|
|||||||
|
|
||||||
Gemini does not support system messages; any unsupported messages will
|
Gemini does not support system messages; any unsupported messages will
|
||||||
raise an error."""
|
raise an error."""
|
||||||
|
client_options: Optional[Dict] = Field(
|
||||||
|
None,
|
||||||
|
description="Client options to pass to the Google API client.",
|
||||||
|
)
|
||||||
|
transport: Optional[str] = Field(
|
||||||
|
None,
|
||||||
|
description="A string, one of: [`rest`, `grpc`, `grpc_asyncio`].",
|
||||||
|
)
|
||||||
|
|
||||||
class Config:
|
class Config:
|
||||||
allow_population_by_field_name = True
|
allow_population_by_field_name = True
|
||||||
@ -488,12 +496,18 @@ Supported examples:
|
|||||||
|
|
||||||
@root_validator()
|
@root_validator()
|
||||||
def validate_environment(cls, values: Dict) -> Dict:
|
def validate_environment(cls, values: Dict) -> Dict:
|
||||||
|
"""Validates params and passes them to google-generativeai package."""
|
||||||
google_api_key = get_from_dict_or_env(
|
google_api_key = get_from_dict_or_env(
|
||||||
values, "google_api_key", "GOOGLE_API_KEY"
|
values, "google_api_key", "GOOGLE_API_KEY"
|
||||||
)
|
)
|
||||||
if isinstance(google_api_key, SecretStr):
|
if isinstance(google_api_key, SecretStr):
|
||||||
google_api_key = google_api_key.get_secret_value()
|
google_api_key = google_api_key.get_secret_value()
|
||||||
genai.configure(api_key=google_api_key)
|
|
||||||
|
genai.configure(
|
||||||
|
api_key=google_api_key,
|
||||||
|
transport=values.get("transport"),
|
||||||
|
client_options=values.get("client_options"),
|
||||||
|
)
|
||||||
if (
|
if (
|
||||||
values.get("temperature") is not None
|
values.get("temperature") is not None
|
||||||
and not 0 <= values["temperature"] <= 1
|
and not 0 <= values["temperature"] <= 1
|
||||||
|
@ -43,16 +43,32 @@ class GoogleGenerativeAIEmbeddings(BaseModel, Embeddings):
|
|||||||
description="The Google API key to use. If not provided, "
|
description="The Google API key to use. If not provided, "
|
||||||
"the GOOGLE_API_KEY environment variable will be used.",
|
"the GOOGLE_API_KEY environment variable will be used.",
|
||||||
)
|
)
|
||||||
|
client_options: Optional[Dict] = Field(
|
||||||
|
None,
|
||||||
|
description=(
|
||||||
|
"A dictionary of client options to pass to the Google API client, "
|
||||||
|
"such as `api_endpoint`."
|
||||||
|
),
|
||||||
|
)
|
||||||
|
transport: Optional[str] = Field(
|
||||||
|
None,
|
||||||
|
description="A string, one of: [`rest`, `grpc`, `grpc_asyncio`].",
|
||||||
|
)
|
||||||
|
|
||||||
@root_validator()
|
@root_validator()
|
||||||
def validate_environment(cls, values: Dict) -> Dict:
|
def validate_environment(cls, values: Dict) -> Dict:
|
||||||
"""Validates that the python package exists in environment."""
|
"""Validates params and passes them to google-generativeai package."""
|
||||||
google_api_key = get_from_dict_or_env(
|
google_api_key = get_from_dict_or_env(
|
||||||
values, "google_api_key", "GOOGLE_API_KEY"
|
values, "google_api_key", "GOOGLE_API_KEY"
|
||||||
)
|
)
|
||||||
if isinstance(google_api_key, SecretStr):
|
if isinstance(google_api_key, SecretStr):
|
||||||
google_api_key = google_api_key.get_secret_value()
|
google_api_key = google_api_key.get_secret_value()
|
||||||
genai.configure(api_key=google_api_key)
|
|
||||||
|
genai.configure(
|
||||||
|
api_key=google_api_key,
|
||||||
|
transport=values.get("transport"),
|
||||||
|
client_options=values.get("client_options"),
|
||||||
|
)
|
||||||
return values
|
return values
|
||||||
|
|
||||||
def _embed(
|
def _embed(
|
||||||
|
@ -121,6 +121,17 @@ Supported examples:
|
|||||||
not return the full n completions if duplicates are generated."""
|
not return the full n completions if duplicates are generated."""
|
||||||
max_retries: int = 6
|
max_retries: int = 6
|
||||||
"""The maximum number of retries to make when generating."""
|
"""The maximum number of retries to make when generating."""
|
||||||
|
client_options: Optional[Dict] = Field(
|
||||||
|
None,
|
||||||
|
description=(
|
||||||
|
"A dictionary of client options to pass to the Google API client, "
|
||||||
|
"such as `api_endpoint`."
|
||||||
|
),
|
||||||
|
)
|
||||||
|
transport: Optional[str] = Field(
|
||||||
|
None,
|
||||||
|
description="A string, one of: [`rest`, `grpc`, `grpc_asyncio`].",
|
||||||
|
)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def is_gemini(self) -> bool:
|
def is_gemini(self) -> bool:
|
||||||
@ -133,7 +144,7 @@ Supported examples:
|
|||||||
|
|
||||||
@root_validator()
|
@root_validator()
|
||||||
def validate_environment(cls, values: Dict) -> Dict:
|
def validate_environment(cls, values: Dict) -> Dict:
|
||||||
"""Validate api key, python package exists."""
|
"""Validates params and passes them to google-generativeai package."""
|
||||||
google_api_key = get_from_dict_or_env(
|
google_api_key = get_from_dict_or_env(
|
||||||
values, "google_api_key", "GOOGLE_API_KEY"
|
values, "google_api_key", "GOOGLE_API_KEY"
|
||||||
)
|
)
|
||||||
@ -142,7 +153,11 @@ Supported examples:
|
|||||||
if isinstance(google_api_key, SecretStr):
|
if isinstance(google_api_key, SecretStr):
|
||||||
google_api_key = google_api_key.get_secret_value()
|
google_api_key = google_api_key.get_secret_value()
|
||||||
|
|
||||||
genai.configure(api_key=google_api_key)
|
genai.configure(
|
||||||
|
api_key=google_api_key,
|
||||||
|
transport=values.get("transport"),
|
||||||
|
client_options=values.get("client_options"),
|
||||||
|
)
|
||||||
|
|
||||||
if _is_gemini_model(model_name):
|
if _is_gemini_model(model_name):
|
||||||
values["client"] = genai.GenerativeModel(model_name=model_name)
|
values["client"] = genai.GenerativeModel(model_name=model_name)
|
||||||
|
Loading…
Reference in New Issue
Block a user