mirror of
https://github.com/hwchase17/langchain.git
synced 2025-08-20 09:57:32 +00:00
**Description:** Adding chat completions to the Together AI package, which is our most popular API. Also staying backwards compatible with the old API so folks can continue to use the completions API as well. Also moved the embedding API to use the OpenAI library to standardize it further. **Twitter handle:** @nutlope - [x] **Add tests and docs**: If you're adding a new integration, please include - [x] **Lint and test**: Run `make format`, `make lint` and `make test` from the root of the package(s) you've modified. See contribution guidelines for more: https://python.langchain.com/docs/contributing/ If no one reviews your PR within a few days, please @-mention one of baskaryan, efriis, eyurtsev, hwchase17. --------- Co-authored-by: Erick Friis <erick@langchain.dev>
61 lines
1.9 KiB
Python
61 lines
1.9 KiB
Python
from typing import cast
|
|
|
|
from langchain_core.pydantic_v1 import SecretStr
|
|
from pytest import CaptureFixture, MonkeyPatch
|
|
|
|
from langchain_together import Together
|
|
|
|
|
|
def test_together_api_key_is_secret_string() -> None:
|
|
"""Test that the API key is stored as a SecretStr."""
|
|
llm = Together(
|
|
together_api_key="secret-api-key",
|
|
model="togethercomputer/RedPajama-INCITE-7B-Base",
|
|
temperature=0.2,
|
|
max_tokens=250,
|
|
)
|
|
assert isinstance(llm.together_api_key, SecretStr)
|
|
|
|
|
|
def test_together_api_key_masked_when_passed_from_env(
|
|
monkeypatch: MonkeyPatch, capsys: CaptureFixture
|
|
) -> None:
|
|
"""Test that the API key is masked when passed from an environment variable."""
|
|
monkeypatch.setenv("TOGETHER_API_KEY", "secret-api-key")
|
|
llm = Together(
|
|
model="togethercomputer/RedPajama-INCITE-7B-Base",
|
|
temperature=0.2,
|
|
max_tokens=250,
|
|
)
|
|
print(llm.together_api_key, end="") # noqa: T201
|
|
captured = capsys.readouterr()
|
|
|
|
assert captured.out == "**********"
|
|
|
|
|
|
def test_together_api_key_masked_when_passed_via_constructor(
|
|
capsys: CaptureFixture,
|
|
) -> None:
|
|
"""Test that the API key is masked when passed via the constructor."""
|
|
llm = Together(
|
|
together_api_key="secret-api-key",
|
|
model="togethercomputer/RedPajama-INCITE-7B-Base",
|
|
temperature=0.2,
|
|
max_tokens=250,
|
|
)
|
|
print(llm.together_api_key, end="") # noqa: T201
|
|
captured = capsys.readouterr()
|
|
|
|
assert captured.out == "**********"
|
|
|
|
|
|
def test_together_uses_actual_secret_value_from_secretstr() -> None:
|
|
"""Test that the actual secret value is correctly retrieved."""
|
|
llm = Together(
|
|
together_api_key="secret-api-key",
|
|
model="togethercomputer/RedPajama-INCITE-7B-Base",
|
|
temperature=0.2,
|
|
max_tokens=250,
|
|
)
|
|
assert cast(SecretStr, llm.together_api_key).get_secret_value() == "secret-api-key"
|