[docs]classArcee(LLM):"""Arcee's Domain Adapted Language Models (DALMs). To use, set the ``ARCEE_API_KEY`` environment variable with your Arcee API key, or pass ``arcee_api_key`` as a named parameter. Example: .. code-block:: python from langchain_community.llms import Arcee arcee = Arcee( model="DALM-PubMed", arcee_api_key="ARCEE-API-KEY" ) response = arcee("AI-driven music therapy") """_client:Optional[ArceeWrapper]=None#: :meta private:"""Arcee _client."""arcee_api_key:Union[SecretStr,str,None]=None"""Arcee API Key"""model:str"""Arcee DALM name"""arcee_api_url:str="https://api.arcee.ai""""Arcee API URL"""arcee_api_version:str="v2""""Arcee API Version"""arcee_app_url:str="https://app.arcee.ai""""Arcee App URL"""model_id:str="""""Arcee Model ID"""model_kwargs:Optional[Dict[str,Any]]=None"""Keyword arguments to pass to the model."""model_config=ConfigDict(extra="forbid",)@propertydef_llm_type(self)->str:"""Return type of llm."""return"arcee"def__init__(self,**data:Any)->None:"""Initializes private fields."""super().__init__(**data)api_key=cast(SecretStr,self.arcee_api_key)self._client=ArceeWrapper(arcee_api_key=api_key,arcee_api_url=self.arcee_api_url,arcee_api_version=self.arcee_api_version,model_kwargs=self.model_kwargs,model_name=self.model,)@model_validator(mode="before")@classmethoddefvalidate_environments(cls,values:Dict)->Any:"""Validate Arcee environment variables."""# validate env varsvalues["arcee_api_key"]=convert_to_secret_str(get_from_dict_or_env(values,"arcee_api_key","ARCEE_API_KEY",))values["arcee_api_url"]=get_from_dict_or_env(values,"arcee_api_url","ARCEE_API_URL",)values["arcee_app_url"]=get_from_dict_or_env(values,"arcee_app_url","ARCEE_APP_URL",)values["arcee_api_version"]=get_from_dict_or_env(values,"arcee_api_version","ARCEE_API_VERSION",)# validate model kwargsifvalues.get("model_kwargs"):kw=values["model_kwargs"]# validate sizeifkw.get("size")isnotNone:ifnotkw.get("size")>=0:raiseValueError("`size` must be positive")# validate filtersifkw.get("filters")isnotNone:ifnotisinstance(kw.get("filters"),List):raiseValueError("`filters` must be a list")forfinkw.get("filters"):DALMFilter(**f)returnvaluesdef_call(self,prompt:str,stop:Optional[List[str]]=None,run_manager:Optional[CallbackManagerForLLMRun]=None,**kwargs:Any,)->str:"""Generate text from Arcee DALM. Args: prompt: Prompt to generate text from. size: The max number of context results to retrieve. Defaults to 3. (Can be less if filters are provided). filters: Filters to apply to the context dataset. """try:ifnotself._client:raiseValueError("Client is not initialized.")returnself._client.generate(prompt=prompt,**kwargs)exceptExceptionase:raiseException(f"Failed to generate text: {e}")frome