Source code for langchain_community.chains.pebblo_retrieval.models
"""Models for the PebbloRetrievalQA chain."""fromtypingimportAny,List,Optional,UnionfrompydanticimportBaseModel
[docs]classAuthContext(BaseModel):"""Class for an authorization context."""name:Optional[str]=Noneuser_id:struser_auth:List[str]"""List of user authorizations, which may include their User ID and the groups they are part of"""
[docs]classSemanticEntities(BaseModel):"""Class for a semantic entity filter."""deny:List[str]
[docs]classSemanticTopics(BaseModel):"""Class for a semantic topic filter."""deny:List[str]
[docs]classSemanticContext(BaseModel):"""Class for a semantic context."""pebblo_semantic_entities:Optional[SemanticEntities]=Nonepebblo_semantic_topics:Optional[SemanticTopics]=Nonedef__init__(self,**data:Any)->None:super().__init__(**data)# Validate semantic_contextif(self.pebblo_semantic_entitiesisNoneandself.pebblo_semantic_topicsisNone):raiseValueError("semantic_context must contain 'pebblo_semantic_entities' or ""'pebblo_semantic_topics'")
[docs]classChainInput(BaseModel):"""Input for PebbloRetrievalQA chain."""query:strauth_context:Optional[AuthContext]=Nonesemantic_context:Optional[SemanticContext]=Nonedefdict(self,**kwargs:Any)->dict:base_dict=super().dict(**kwargs)# Keep auth_context and semantic_context as it is(Pydantic models)base_dict["auth_context"]=self.auth_contextbase_dict["semantic_context"]=self.semantic_contextreturnbase_dict
[docs]classRuntime(BaseModel):""" OS, language details """type:Optional[str]=""host:strpath:strip:Optional[str]=""platform:stros:stros_version:strlanguage:strlanguage_version:strruntime:Optional[str]=""