Skip to content

Commit

Permalink
Mask API keys for various LLM/ChatModel Modules (langchain-ai#13885)
Browse files Browse the repository at this point in the history
**Description:** 
- Added masking of the API Keys for the modules:
  - `langchain/chat_models/openai.py`
  - `langchain/llms/openai.py`
  - `langchain/llms/google_palm.py`
  - `langchain/chat_models/google_palm.py`
  - `langchain/llms/edenai.py`

- Updated the modules to utilize `SecretStr` from pydantic to securely
manage API key.
- Added unit/integration tests
- `langchain/chat_models/asure_openai.py` used the `open_api_key` that
is derived from the `ChatOpenAI` Class and it was assuming
`openai_api_key` is a str so we changed it to expect `SecretStr`
instead.

**Issue:** langchain-ai#12165 ,
**Dependencies:** none,
**Tag maintainer:** @eyurtsev

---------

Co-authored-by: HassanA01 <[email protected]>
Co-authored-by: Aneeq Hassan <[email protected]>
Co-authored-by: kristinspenc <[email protected]>
Co-authored-by: faisalt14 <[email protected]>
Co-authored-by: Harshil-Patel28 <[email protected]>
Co-authored-by: kristinspenc <[email protected]>
Co-authored-by: faisalt14 <[email protected]>
Co-authored-by: Chester Curme <[email protected]>
  • Loading branch information
9 people authored and olgamurraft committed Aug 16, 2024
1 parent 14056e5 commit 8183c0e
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions libs/community/tests/integration_tests/llms/test_edenai.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@
You'll then need to set EDENAI_API_KEY environment variable to your api key.
"""

from langchain_core.pydantic_v1 import SecretStr

from langchain_community.llms import EdenAI


Expand Down Expand Up @@ -45,3 +47,13 @@ def test_edenai_call_with_old_params() -> None:
assert llm.feature == "text"
assert llm.subfeature == "generation"
assert isinstance(output, str)


def test_api_key_is_secret_string() -> None:
llm = EdenAI(provider="openai", edenai_api_key="secret-api-key")
assert isinstance(llm.edenai_api_key, SecretStr)


def test_uses_actual_secret_value() -> None:
llm = EdenAI(provider="openai", edenai_api_key="secret-api-key")
assert llm.edenai_api_key.get_secret_value() == "secret-api-key"

0 comments on commit 8183c0e

Please sign in to comment.