90 lines
2.3 KiB
Python
90 lines
2.3 KiB
Python
from __future__ import annotations
|
|
|
|
from abc import ABC, abstractmethod
|
|
|
|
from fastapi_modules.fastapi_leaudit.domian.vo.ragChatAttachmentVo import (
|
|
RagChatAttachmentDeleteVO,
|
|
RagChatAttachmentVO,
|
|
)
|
|
|
|
|
|
class IRagChatAttachmentService(ABC):
|
|
@abstractmethod
|
|
async def CreateAttachment(
|
|
self,
|
|
CurrentUserId: int,
|
|
UserArea: str | None,
|
|
UserRole: str | None,
|
|
TenantCode: str | None,
|
|
TenantName: str | None,
|
|
ConversationId: str | None,
|
|
AppId: int | None,
|
|
FileName: str,
|
|
ContentType: str | None,
|
|
Content: bytes,
|
|
) -> RagChatAttachmentVO: ...
|
|
|
|
@abstractmethod
|
|
async def GetAttachment(
|
|
self,
|
|
CurrentUserId: int,
|
|
UserArea: str | None,
|
|
UserRole: str | None,
|
|
TenantCode: str | None,
|
|
TenantName: str | None,
|
|
ConversationId: str,
|
|
AttachmentId: str,
|
|
) -> RagChatAttachmentVO: ...
|
|
|
|
@abstractmethod
|
|
async def DeleteAttachment(
|
|
self,
|
|
CurrentUserId: int,
|
|
UserArea: str | None,
|
|
UserRole: str | None,
|
|
TenantCode: str | None,
|
|
TenantName: str | None,
|
|
ConversationId: str,
|
|
AttachmentId: str,
|
|
) -> RagChatAttachmentDeleteVO: ...
|
|
|
|
@abstractmethod
|
|
async def ValidateAttachmentForChat(
|
|
self,
|
|
CurrentUserId: int,
|
|
TenantCode: str | None,
|
|
ConversationId: str,
|
|
AttachmentId: str,
|
|
UserArea: str | None = None,
|
|
) -> dict: ...
|
|
|
|
@abstractmethod
|
|
async def RetrieveAttachmentContext(
|
|
self,
|
|
CurrentUserId: int,
|
|
TenantCode: str | None,
|
|
ConversationId: str,
|
|
AttachmentId: str,
|
|
Query: str,
|
|
TopK: int = 5,
|
|
UserArea: str | None = None,
|
|
) -> tuple[list[dict], str]: ...
|
|
|
|
@abstractmethod
|
|
async def ResolveActiveAttachmentIdForConversation(
|
|
self,
|
|
CurrentUserId: int,
|
|
TenantCode: str | None,
|
|
ConversationId: str,
|
|
UserArea: str | None = None,
|
|
) -> str | None: ...
|
|
|
|
@abstractmethod
|
|
async def ResolveActiveAttachmentIdsForConversation(
|
|
self,
|
|
CurrentUserId: int,
|
|
TenantCode: str | None,
|
|
ConversationId: str,
|
|
UserArea: str | None = None,
|
|
) -> list[str]: ...
|