Skip to content

Commit

Permalink
Fix issue langchain-ai#27058
Browse files Browse the repository at this point in the history
In PR langchain-ai#17100, the implementation for Moonshot was added, which defined two classes:

- `MoonshotChat(MoonshotCommon, ChatOpenAI)` in `langchain_community.chat_models.moonshot`;
  - Here, `validate_environment()` assigns **client** as `openai.OpenAI().chat.completions`
    - Note that **client** here is actually a member variable defined in `ChatOpenAI`;
- `MoonshotCommon` in `langchain_community.llms.moonshot`;
  - And here, `validate_environment()` assigns **_client** as `_MoonshotClient`;
    - Note that this is the underscored **_client**, which is defined within `MoonshotCommon` itself;

At this time, there was no conflict between the two, one being `client` and the other `_client`.

However, in PR langchain-ai#25878 which fixed langchain-ai#24390, `_client` in `MoonshotCommon` was changed to `client`. Since then, a conflict in the definition of `client` has arisen between `MoonshotCommon` and `MoonshotChat`, which caused `pydantic` validation error.

To fix this issue, the type of `client` in `MoonshotCommon` should be changed to `Any`.

Signed-off-by: Tao Wang <[email protected]>
  • Loading branch information
twang2218 committed Oct 31, 2024
1 parent b631b0a commit 535fdc2
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion libs/community/langchain_community/llms/moonshot.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ def completion(self, request: Any) -> Any:
class MoonshotCommon(BaseModel):
"""Common parameters for Moonshot LLMs."""

client: _MoonshotClient
client: Any
base_url: str = MOONSHOT_SERVICE_URL_BASE
moonshot_api_key: Optional[SecretStr] = Field(default=None, alias="api_key")
"""Moonshot API key. Get it here: https://platform.moonshot.cn/console/api-keys"""
Expand Down

0 comments on commit 535fdc2

Please sign in to comment.