langchain/libs/community/tests/unit_tests/embeddings/test_sparkllm.py
maang-h 13140dc4ff
community[patch]: Update the default api_url and reqeust_body of sparkllm embedding (#22136)
- **Description:** When I was running the SparkLLMTextEmbeddings,
app_id, api_key and api_secret are all correct, but it cannot run
normally using the current URL.

    ```python
    # example
    from langchain_community.embeddings import SparkLLMTextEmbeddings

    embedding= SparkLLMTextEmbeddings(
        spark_app_id="my-app-id",
        spark_api_key="my-api-key",
        spark_api_secret="my-api-secret"
    )
    embedding= "hello"
    print(spark.embed_query(text1))
    ```

![sparkembedding](https://github.com/langchain-ai/langchain/assets/55082429/11daa853-4f67-45b2-aae2-c95caa14e38c)
   
So I updated the url and request body parameters according to
[Embedding_api](https://www.xfyun.cn/doc/spark/Embedding_api.html), now
it is runnable.
2024-06-03 12:38:11 -07:00

48 lines
1.5 KiB
Python

import os
from typing import cast
import pytest
from langchain_core.pydantic_v1 import SecretStr, ValidationError
from langchain_community.embeddings import SparkLLMTextEmbeddings
def test_sparkllm_initialization_by_alias() -> None:
# Effective initialization
embeddings = SparkLLMTextEmbeddings(
app_id="your-app-id", # type: ignore[arg-type]
api_key="your-api-key", # type: ignore[arg-type]
api_secret="your-api-secret", # type: ignore[arg-type]
)
assert cast(SecretStr, embeddings.spark_app_id).get_secret_value() == "your-app-id"
assert (
cast(SecretStr, embeddings.spark_api_key).get_secret_value() == "your-api-key"
)
assert (
cast(SecretStr, embeddings.spark_api_secret).get_secret_value()
== "your-api-secret"
)
def test_initialization_parameters_from_env() -> None:
# Setting environment variable
os.environ["SPARK_APP_ID"] = "your-app-id"
os.environ["SPARK_API_KEY"] = "your-api-key"
os.environ["SPARK_API_SECRET"] = "your-api-secret"
# Effective initialization
embeddings = SparkLLMTextEmbeddings()
assert cast(SecretStr, embeddings.spark_app_id).get_secret_value() == "your-app-id"
assert (
cast(SecretStr, embeddings.spark_api_key).get_secret_value() == "your-api-key"
)
assert (
cast(SecretStr, embeddings.spark_api_secret).get_secret_value()
== "your-api-secret"
)
# Environment variable missing
del os.environ["SPARK_APP_ID"]
with pytest.raises(ValidationError):
SparkLLMTextEmbeddings()