Source code for langchain_community.chains.pebblo_retrieval.models
"""PebbloRetrievalQA链的模型。"""
from typing import Any, List, Optional
from langchain_core.pydantic_v1 import BaseModel
[docs]class AuthContext(BaseModel):
"""用于授权上下文的类。"""
name: Optional[str] = None
user_id: str
user_auth: List[str]
"""用户授权列表,可能包括他们的用户ID和所属的用户组。"""
[docs]class SemanticEntities(BaseModel):
"""用于语义实体过滤的类。"""
deny: List[str]
[docs]class SemanticTopics(BaseModel):
"""用于语义主题过滤的类。"""
deny: List[str]
[docs]class SemanticContext(BaseModel):
"""用于语义上下文的类。"""
pebblo_semantic_entities: Optional[SemanticEntities] = None
pebblo_semantic_topics: Optional[SemanticTopics] = None
def __init__(self, **data: Any) -> None:
super().__init__(**data)
# Validate semantic_context
if (
self.pebblo_semantic_entities is None
and self.pebblo_semantic_topics is None
):
raise ValueError(
"semantic_context must contain 'pebblo_semantic_entities' or "
"'pebblo_semantic_topics'"
)