Source code for langchain_community.chat_models.moonshot
"""Wrapper around Moonshot chat models."""fromtypingimportDictfromlangchain_core.utilsimport(convert_to_secret_str,get_from_dict_or_env,pre_init,)fromlangchain_community.chat_modelsimportChatOpenAIfromlangchain_community.llms.moonshotimportMOONSHOT_SERVICE_URL_BASE,MoonshotCommon
[docs]classMoonshotChat(MoonshotCommon,ChatOpenAI):# type: ignore[misc]"""Moonshot large language models. To use, you should have the ``openai`` python package installed, and the environment variable ``MOONSHOT_API_KEY`` set with your API key. (Moonshot's chat API is compatible with OpenAI's SDK.) Referenced from https://platform.moonshot.cn/docs Example: .. code-block:: python from langchain_community.chat_models.moonshot import MoonshotChat moonshot = MoonshotChat(model="moonshot-v1-8k") """@pre_initdefvalidate_environment(cls,values:Dict)->Dict:"""Validate that the environment is set up correctly."""values["moonshot_api_key"]=convert_to_secret_str(get_from_dict_or_env(values,["moonshot_api_key","api_key","openai_api_key"],"MOONSHOT_API_KEY",))try:importopenaiexceptImportError:raiseImportError("Could not import openai python package. ""Please install it with `pip install openai`.")client_params={"api_key":values["moonshot_api_key"].get_secret_value(),"base_url":values["base_url"]if"base_url"invalueselseMOONSHOT_SERVICE_URL_BASE,}ifnotvalues.get("client"):values["client"]=openai.OpenAI(**client_params).chat.completionsifnotvalues.get("async_client"):values["async_client"]=openai.AsyncOpenAI(**client_params).chat.completionsreturnvalues