跳到内容

索引

BaseMemory #

基类:BaseComponent

所有记忆类型的基类。

源代码位于 llama-index-core/llama_index/core/memory/types.py
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
class BaseMemory(BaseComponent):
    """Base class for all memory types."""

    @classmethod
    def class_name(cls) -> str:
        """Get class name."""
        return "BaseMemory"

    @classmethod
    @abstractmethod
    def from_defaults(
        cls,
        **kwargs: Any,
    ) -> "BaseMemory":
        """Create a chat memory from defaults."""

    @abstractmethod
    def get(self, input: Optional[str] = None, **kwargs: Any) -> List[ChatMessage]:
        """Get chat history."""

    async def aget(
        self, input: Optional[str] = None, **kwargs: Any
    ) -> List[ChatMessage]:
        """Get chat history."""
        return await asyncio.to_thread(self.get, input=input, **kwargs)

    @abstractmethod
    def get_all(self) -> List[ChatMessage]:
        """Get all chat history."""

    async def aget_all(self) -> List[ChatMessage]:
        """Get all chat history."""
        return await asyncio.to_thread(self.get_all)

    @abstractmethod
    def put(self, message: ChatMessage) -> None:
        """Put chat history."""

    async def aput(self, message: ChatMessage) -> None:
        """Put chat history."""
        await asyncio.to_thread(self.put, message)

    def put_messages(self, messages: List[ChatMessage]) -> None:
        """Put chat history."""
        for message in messages:
            self.put(message)

    async def aput_messages(self, messages: List[ChatMessage]) -> None:
        """Put chat history."""
        await asyncio.to_thread(self.put_messages, messages)

    @abstractmethod
    def set(self, messages: List[ChatMessage]) -> None:
        """Set chat history."""

    async def aset(self, messages: List[ChatMessage]) -> None:
        """Set chat history."""
        await asyncio.to_thread(self.set, messages)

    @abstractmethod
    def reset(self) -> None:
        """Reset chat history."""

    async def areset(self) -> None:
        """Reset chat history."""
        await asyncio.to_thread(self.reset)

class_name classmethod #

class_name() -> str

获取类名。

源代码位于 llama-index-core/llama_index/core/memory/types.py
17
18
19
20
@classmethod
def class_name(cls) -> str:
    """Get class name."""
    return "BaseMemory"

from_defaults abstractmethod classmethod #

from_defaults(**kwargs: Any) -> BaseMemory

从默认值创建聊天记忆。

源代码位于 llama-index-core/llama_index/core/memory/types.py
22
23
24
25
26
27
28
@classmethod
@abstractmethod
def from_defaults(
    cls,
    **kwargs: Any,
) -> "BaseMemory":
    """Create a chat memory from defaults."""

get abstractmethod #

get(input: Optional[str] = None, **kwargs: Any) -> List[ChatMessage]

获取聊天记录。

源代码位于 llama-index-core/llama_index/core/memory/types.py
30
31
32
@abstractmethod
def get(self, input: Optional[str] = None, **kwargs: Any) -> List[ChatMessage]:
    """Get chat history."""

aget async #

aget(input: Optional[str] = None, **kwargs: Any) -> List[ChatMessage]

获取聊天记录。

源代码位于 llama-index-core/llama_index/core/memory/types.py
34
35
36
37
38
async def aget(
    self, input: Optional[str] = None, **kwargs: Any
) -> List[ChatMessage]:
    """Get chat history."""
    return await asyncio.to_thread(self.get, input=input, **kwargs)

get_all abstractmethod #

get_all() -> List[ChatMessage]

获取所有聊天记录。

源代码位于 llama-index-core/llama_index/core/memory/types.py
40
41
42
@abstractmethod
def get_all(self) -> List[ChatMessage]:
    """Get all chat history."""

aget_all async #

aget_all() -> List[ChatMessage]

获取所有聊天记录。

源代码位于 llama-index-core/llama_index/core/memory/types.py
44
45
46
async def aget_all(self) -> List[ChatMessage]:
    """Get all chat history."""
    return await asyncio.to_thread(self.get_all)

put abstractmethod #

put(message: ChatMessage) -> None

放入聊天记录。

源代码位于 llama-index-core/llama_index/core/memory/types.py
48
49
50
@abstractmethod
def put(self, message: ChatMessage) -> None:
    """Put chat history."""

aput async #

aput(message: ChatMessage) -> None

放入聊天记录。

源代码位于 llama-index-core/llama_index/core/memory/types.py
52
53
54
async def aput(self, message: ChatMessage) -> None:
    """Put chat history."""
    await asyncio.to_thread(self.put, message)

put_messages #

put_messages(messages: List[ChatMessage]) -> None

放入聊天记录。

源代码位于 llama-index-core/llama_index/core/memory/types.py
56
57
58
59
def put_messages(self, messages: List[ChatMessage]) -> None:
    """Put chat history."""
    for message in messages:
        self.put(message)

aput_messages async #

aput_messages(messages: List[ChatMessage]) -> None

放入聊天记录。

源代码位于 llama-index-core/llama_index/core/memory/types.py
61
62
63
async def aput_messages(self, messages: List[ChatMessage]) -> None:
    """Put chat history."""
    await asyncio.to_thread(self.put_messages, messages)

set abstractmethod #

set(messages: List[ChatMessage]) -> None

设置聊天记录。

源代码位于 llama-index-core/llama_index/core/memory/types.py
65
66
67
@abstractmethod
def set(self, messages: List[ChatMessage]) -> None:
    """Set chat history."""

aset async #

aset(messages: List[ChatMessage]) -> None

设置聊天记录。

源代码位于 llama-index-core/llama_index/core/memory/types.py
69
70
71
async def aset(self, messages: List[ChatMessage]) -> None:
    """Set chat history."""
    await asyncio.to_thread(self.set, messages)

reset abstractmethod #

reset() -> None

重置聊天记录。

源代码位于 llama-index-core/llama_index/core/memory/types.py
73
74
75
@abstractmethod
def reset(self) -> None:
    """Reset chat history."""

areset async #

areset() -> None

重置聊天记录。

源代码位于 llama-index-core/llama_index/core/memory/types.py
77
78
79
async def areset(self) -> None:
    """Reset chat history."""
    await asyncio.to_thread(self.reset)

BaseChatStoreMemory #

基类:BaseMemory

用于存储多租户聊天记录的基类。

参数

名称 类型 描述 默认值
chat_store BaseChatStore

简单聊天存储。异步方法提供与此类中同步方法相同的功能。

<dynamic>
chat_store_key str
'chat_history'
源代码位于 llama-index-core/llama_index/core/memory/types.py
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
class BaseChatStoreMemory(BaseMemory):
    """Base class for storing multi-tenant chat history."""

    chat_store: SerializeAsAny[BaseChatStore] = Field(default_factory=SimpleChatStore)
    chat_store_key: str = Field(default=DEFAULT_CHAT_STORE_KEY)

    @field_serializer("chat_store")
    def serialize_courses_in_order(self, chat_store: BaseChatStore) -> dict:
        res = chat_store.model_dump()
        res.update({"class_name": chat_store.class_name()})
        return res

    @classmethod
    def class_name(cls) -> str:
        """Get class name."""
        return "BaseChatStoreMemory"

    @classmethod
    @abstractmethod
    def from_defaults(
        cls,
        chat_history: Optional[List[ChatMessage]] = None,
        llm: Optional[LLM] = None,
        **kwargs: Any,
    ) -> "BaseChatStoreMemory":
        """Create a chat memory from defaults."""

    def get_all(self) -> List[ChatMessage]:
        """Get all chat history."""
        return self.chat_store.get_messages(self.chat_store_key)

    async def aget_all(self) -> List[ChatMessage]:
        """Get all chat history."""
        return await self.chat_store.aget_messages(self.chat_store_key)

    def get(self, input: Optional[str] = None, **kwargs: Any) -> List[ChatMessage]:
        """Get chat history."""
        return self.chat_store.get_messages(self.chat_store_key, **kwargs)

    async def aget(
        self, input: Optional[str] = None, **kwargs: Any
    ) -> List[ChatMessage]:
        """Get chat history."""
        return await self.chat_store.aget_messages(self.chat_store_key, **kwargs)

    def put(self, message: ChatMessage) -> None:
        """Put chat history."""
        # ensure everything is serialized
        self.chat_store.add_message(self.chat_store_key, message)

    async def aput(self, message: ChatMessage) -> None:
        """Put chat history."""
        # ensure everything is serialized
        await self.chat_store.async_add_message(self.chat_store_key, message)

    def set(self, messages: List[ChatMessage]) -> None:
        """Set chat history."""
        self.chat_store.set_messages(self.chat_store_key, messages)

    async def aset(self, messages: List[ChatMessage]) -> None:
        """Set chat history."""
        # ensure everything is serialized
        await self.chat_store.aset_messages(self.chat_store_key, messages)

    def reset(self) -> None:
        """Reset chat history."""
        self.chat_store.delete_messages(self.chat_store_key)

    async def areset(self) -> None:
        """Reset chat history."""
        await self.chat_store.adelete_messages(self.chat_store_key)

class_name classmethod #

class_name() -> str

获取类名。

源代码位于 llama-index-core/llama_index/core/memory/types.py
94
95
96
97
@classmethod
def class_name(cls) -> str:
    """Get class name."""
    return "BaseChatStoreMemory"

from_defaults abstractmethod classmethod #

from_defaults(chat_history: Optional[List[ChatMessage]] = None, llm: Optional[LLM] = None, **kwargs: Any) -> BaseChatStoreMemory

从默认值创建聊天记忆。

源代码位于 llama-index-core/llama_index/core/memory/types.py
 99
100
101
102
103
104
105
106
107
@classmethod
@abstractmethod
def from_defaults(
    cls,
    chat_history: Optional[List[ChatMessage]] = None,
    llm: Optional[LLM] = None,
    **kwargs: Any,
) -> "BaseChatStoreMemory":
    """Create a chat memory from defaults."""

get_all #

get_all() -> List[ChatMessage]

获取所有聊天记录。

源代码位于 llama-index-core/llama_index/core/memory/types.py
109
110
111
def get_all(self) -> List[ChatMessage]:
    """Get all chat history."""
    return self.chat_store.get_messages(self.chat_store_key)

aget_all async #

aget_all() -> List[ChatMessage]

获取所有聊天记录。

源代码位于 llama-index-core/llama_index/core/memory/types.py
113
114
115
async def aget_all(self) -> List[ChatMessage]:
    """Get all chat history."""
    return await self.chat_store.aget_messages(self.chat_store_key)

get #

get(input: Optional[str] = None, **kwargs: Any) -> List[ChatMessage]

获取聊天记录。

源代码位于 llama-index-core/llama_index/core/memory/types.py
117
118
119
def get(self, input: Optional[str] = None, **kwargs: Any) -> List[ChatMessage]:
    """Get chat history."""
    return self.chat_store.get_messages(self.chat_store_key, **kwargs)

aget async #

aget(input: Optional[str] = None, **kwargs: Any) -> List[ChatMessage]

获取聊天记录。

源代码位于 llama-index-core/llama_index/core/memory/types.py
121
122
123
124
125
async def aget(
    self, input: Optional[str] = None, **kwargs: Any
) -> List[ChatMessage]:
    """Get chat history."""
    return await self.chat_store.aget_messages(self.chat_store_key, **kwargs)

put #

put(message: ChatMessage) -> None

放入聊天记录。

源代码位于 llama-index-core/llama_index/core/memory/types.py
127
128
129
130
def put(self, message: ChatMessage) -> None:
    """Put chat history."""
    # ensure everything is serialized
    self.chat_store.add_message(self.chat_store_key, message)

aput async #

aput(message: ChatMessage) -> None

放入聊天记录。

源代码位于 llama-index-core/llama_index/core/memory/types.py
132
133
134
135
async def aput(self, message: ChatMessage) -> None:
    """Put chat history."""
    # ensure everything is serialized
    await self.chat_store.async_add_message(self.chat_store_key, message)

set #

set(messages: List[ChatMessage]) -> None

设置聊天记录。

源代码位于 llama-index-core/llama_index/core/memory/types.py
137
138
139
def set(self, messages: List[ChatMessage]) -> None:
    """Set chat history."""
    self.chat_store.set_messages(self.chat_store_key, messages)

aset async #

aset(messages: List[ChatMessage]) -> None

设置聊天记录。

源代码位于 llama-index-core/llama_index/core/memory/types.py
141
142
143
144
async def aset(self, messages: List[ChatMessage]) -> None:
    """Set chat history."""
    # ensure everything is serialized
    await self.chat_store.aset_messages(self.chat_store_key, messages)

reset #

reset() -> None

重置聊天记录。

源代码位于 llama-index-core/llama_index/core/memory/types.py
146
147
148
def reset(self) -> None:
    """Reset chat history."""
    self.chat_store.delete_messages(self.chat_store_key)

areset async #

areset() -> None

重置聊天记录。

源代码位于 llama-index-core/llama_index/core/memory/types.py
150
151
152
async def areset(self) -> None:
    """Reset chat history."""
    await self.chat_store.adelete_messages(self.chat_store_key)