feat(rag): add temporary chat attachments
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
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]: ...
|
||||
Reference in New Issue
Block a user