openvector_dev 0.1.7__py3-none-any.whl → 0.1.8__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- lein_vector/api/facade.py +7 -66
- lein_vector/memory_manager_qdrant.py +1 -1
- {openvector_dev-0.1.7.dist-info → openvector_dev-0.1.8.dist-info}/METADATA +1 -1
- {openvector_dev-0.1.7.dist-info → openvector_dev-0.1.8.dist-info}/RECORD +5 -5
- {openvector_dev-0.1.7.dist-info → openvector_dev-0.1.8.dist-info}/WHEEL +0 -0
lein_vector/api/facade.py
CHANGED
@@ -54,70 +54,6 @@ class Memory:
|
|
54
54
|
long_mem = MemoryManagerQdrant(adapter, embedder)
|
55
55
|
return cls(short_mem, long_mem, embedder)
|
56
56
|
|
57
|
-
async def step_user(
|
58
|
-
self, *, bot: str, user_id: int, user_msg: str, topk: int = 3, history_n: int = 20
|
59
|
-
):
|
60
|
-
"""
|
61
|
-
:param bot: Идентификатор бота.
|
62
|
-
:param user_id: Идентификатор пользователя.
|
63
|
-
:param user_msg: Текст сообщения пользователя.
|
64
|
-
:param topk: Количество релевантных чанков из долговременной памяти.
|
65
|
-
:param history_n: Размер окна кратковременной памяти.
|
66
|
-
:returns: Словарь с short_term и long_term сообщениями.
|
67
|
-
"""
|
68
|
-
warnings.warn(
|
69
|
-
"Заменили на низкоуровневые методы",
|
70
|
-
DeprecationWarning,
|
71
|
-
stacklevel=2
|
72
|
-
)
|
73
|
-
key = (user_id, bot)
|
74
|
-
curr_no = self._msg_no.get(key, 0) + 1
|
75
|
-
self._msg_no[key] = curr_no
|
76
|
-
await self.short.add(
|
77
|
-
bot=bot,
|
78
|
-
user_id=user_id,
|
79
|
-
role="user",
|
80
|
-
text=user_msg,
|
81
|
-
extra={"msg_no": curr_no},
|
82
|
-
)
|
83
|
-
embedding = await self.embed.get_embedding(user_msg)
|
84
|
-
long_memories = await self.long.retrieve_by_embedding(
|
85
|
-
user_id=user_id,
|
86
|
-
embedding=embedding,
|
87
|
-
topk=topk,
|
88
|
-
filter_={"bot": bot},
|
89
|
-
score_threshold=0.7
|
90
|
-
)
|
91
|
-
short_ctx = await self.short.window(user_id, history_n)
|
92
|
-
return {"short_term": short_ctx, "long_term": long_memories}
|
93
|
-
|
94
|
-
async def step_user_oai(
|
95
|
-
self,
|
96
|
-
user_id: int,
|
97
|
-
user_msg: str,
|
98
|
-
bot: str,
|
99
|
-
*,
|
100
|
-
topk: int = 3,
|
101
|
-
history_n: int = 20,
|
102
|
-
) -> dict:
|
103
|
-
"""
|
104
|
-
:param user_id: Идентификатор пользователя.
|
105
|
-
:param user_msg: Текст сообщения пользователя.
|
106
|
-
:param bot: Идентификатор бота.
|
107
|
-
:param topk: Количество релевантных чанков из долговременной памяти.
|
108
|
-
:param history_n: Размер окна кратковременной памяти.
|
109
|
-
:returns: Данные short_term и long_term в формате OpenAI-совместимого вывода.
|
110
|
-
"""
|
111
|
-
warnings.warn(
|
112
|
-
"Заменили на низкоуровневые методы",
|
113
|
-
DeprecationWarning,
|
114
|
-
stacklevel=2
|
115
|
-
)
|
116
|
-
data = await self.step_user(user_id, bot, user_msg, topk=topk, history_n=history_n)
|
117
|
-
data["short_term"] = self._to_openai(data["short_term"])
|
118
|
-
data["long_term"] = self._chunk_texts(data["long_term"])
|
119
|
-
return data
|
120
|
-
|
121
57
|
@staticmethod
|
122
58
|
def _to_openai(msgs: list[dict]) -> list[dict]:
|
123
59
|
"""
|
@@ -195,8 +131,13 @@ class Memory:
|
|
195
131
|
"""
|
196
132
|
# wtf: Добавить фильтр только саммари
|
197
133
|
search_terms = [await self.embed.get_embedding(term) for term in search_terms]
|
198
|
-
return await self.long.retrieve_by_embeddings(
|
199
|
-
|
134
|
+
return await self.long.retrieve_by_embeddings(
|
135
|
+
user_id=user_id,
|
136
|
+
bot=bot,
|
137
|
+
embeddings=search_terms,
|
138
|
+
score_threshold=0.72,
|
139
|
+
filter_={"chunk_type": "type1"},
|
140
|
+
)
|
200
141
|
|
201
142
|
async def get_short_memories(self, user_id: int, bot: str, n_memories: int = 20) -> list:
|
202
143
|
"""
|
@@ -52,10 +52,10 @@ class MemoryManagerQdrant(MemoryManagerABC):
|
|
52
52
|
|
53
53
|
async def retrieve_by_embeddings(
|
54
54
|
self,
|
55
|
+
bot: str,
|
55
56
|
user_id: int,
|
56
57
|
embeddings: list[list[float]],
|
57
58
|
*,
|
58
|
-
bot: str,
|
59
59
|
topk: int = 3,
|
60
60
|
filter_: dict[str, Any] | None = None,
|
61
61
|
score_threshold: float | None = None,
|
@@ -1,10 +1,10 @@
|
|
1
1
|
lein_vector/__init__.py,sha256=ieXy65X4eVzUtSHNvlh00s4aMwKReafNni4s2q68z3Q,496
|
2
2
|
lein_vector/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
|
-
lein_vector/api/facade.py,sha256=
|
3
|
+
lein_vector/api/facade.py,sha256=URxGEad8QrhYY6QJTrz552mk_9z8TWi7RB1veykyD-4,7886
|
4
4
|
lein_vector/bases/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
5
5
|
lein_vector/bases/embeding_provider_abc.py,sha256=WBpVC6ra-SYqhJeZs8R8U679wfGebXgwOOVPIii-IvY,265
|
6
6
|
lein_vector/bases/memory_manager_abc.py,sha256=pWuIw_wYlvUlt40jbiE92lWzdYaowZKg3XK0Mq0tQrw,1687
|
7
|
-
lein_vector/memory_manager_qdrant.py,sha256=
|
7
|
+
lein_vector/memory_manager_qdrant.py,sha256=DFhvtpDl3OxLSpCQiNXnKVSoqQ3475cSDcfE5wF8Njw,6175
|
8
8
|
lein_vector/memory_manager_ram.py,sha256=lUATu6U-cZuRHnR6U1L8aJQB8FNK0Wi40vXsZ5fjDgI,6002
|
9
9
|
lein_vector/qdrant_adapter.py,sha256=uPhYAp0KmYQhY3DF29JMO1JTbM__xDWGlnZZPor3VKI,4193
|
10
10
|
lein_vector/redis_short_term.py,sha256=uCcncjgXAlNAY46b3_Pjvrn_G0NEI16kRRR9hxayzak,3155
|
@@ -12,6 +12,6 @@ lein_vector/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
|
|
12
12
|
lein_vector/schemas/chunk.py,sha256=FSUwaFUSZk2ptoxupsdIfj5HYAMnHnu3eBfNpXCUMpM,1195
|
13
13
|
lein_vector/sentence_transformer.py,sha256=gbWtkT01QFFA0IR_Ta-xsfBfb6owDzGnZDKY1g9fvBQ,1851
|
14
14
|
lein_vector/short_term.py,sha256=KFot9r26d9TZYLscVT42V0NwufIQUkx-hftOe2p7qLU,1933
|
15
|
-
openvector_dev-0.1.
|
16
|
-
openvector_dev-0.1.
|
17
|
-
openvector_dev-0.1.
|
15
|
+
openvector_dev-0.1.8.dist-info/METADATA,sha256=GOE9yKHgwxWZ5jmu8sOpqnz1XBcmKh0dSuP3zoGWOwQ,3167
|
16
|
+
openvector_dev-0.1.8.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
|
17
|
+
openvector_dev-0.1.8.dist-info/RECORD,,
|
File without changes
|