llama-index

Форк
0
1
"""Base interface class for storing chat history per user."""
2

3
from abc import abstractmethod
4
from typing import List, Optional
5

6
from llama_index.legacy.llms import ChatMessage
7
from llama_index.legacy.schema import BaseComponent
8

9

10
class BaseChatStore(BaseComponent):
11
    @classmethod
12
    def class_name(cls) -> str:
13
        """Get class name."""
14
        return "BaseChatStore"
15

16
    @abstractmethod
17
    def set_messages(self, key: str, messages: List[ChatMessage]) -> None:
18
        """Set messages for a key."""
19
        ...
20

21
    @abstractmethod
22
    def get_messages(self, key: str) -> List[ChatMessage]:
23
        """Get messages for a key."""
24
        ...
25

26
    @abstractmethod
27
    def add_message(self, key: str, message: ChatMessage) -> None:
28
        """Add a message for a key."""
29
        ...
30

31
    @abstractmethod
32
    def delete_messages(self, key: str) -> Optional[List[ChatMessage]]:
33
        """Delete messages for a key."""
34
        ...
35

36
    @abstractmethod
37
    def delete_message(self, key: str, idx: int) -> Optional[ChatMessage]:
38
        """Delete specific message for a key."""
39
        ...
40

41
    @abstractmethod
42
    def delete_last_message(self, key: str) -> Optional[ChatMessage]:
43
        """Delete last message for a key."""
44
        ...
45

46
    @abstractmethod
47
    def get_keys(self) -> List[str]:
48
        """Get all keys."""
49
        ...
50

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.