openvector_dev 0.1.12__py3-none-any.whl → 0.1.14__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/__init__.py +0 -2
- lein_vector/api/facade.py +33 -11
- lein_vector/memory_manager_qdrant.py +2 -2
- {openvector_dev-0.1.12.dist-info → openvector_dev-0.1.14.dist-info}/METADATA +1 -1
- {openvector_dev-0.1.12.dist-info → openvector_dev-0.1.14.dist-info}/RECORD +6 -6
- {openvector_dev-0.1.12.dist-info → openvector_dev-0.1.14.dist-info}/WHEEL +0 -0
lein_vector/__init__.py
CHANGED
@@ -3,14 +3,12 @@ from .memory_manager_qdrant import MemoryManagerQdrant
|
|
3
3
|
from .qdrant_adapter import QdrantAdapter
|
4
4
|
from .redis_short_term import RedisShortTermMemory
|
5
5
|
from .sentence_transformer import EmbeddingProviderGemini as EmbeddingProvider
|
6
|
-
from .short_term import ShortTermMemory
|
7
6
|
|
8
7
|
__all__ = [
|
9
8
|
"EmbeddingProvider",
|
10
9
|
"MemoryManagerQdrant",
|
11
10
|
"QdrantAdapter",
|
12
11
|
"RedisShortTermMemory",
|
13
|
-
"ShortTermMemory",
|
14
12
|
"api",
|
15
13
|
"bases",
|
16
14
|
"schemas",
|
lein_vector/api/facade.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
+
import random
|
1
2
|
from collections.abc import Sequence
|
2
3
|
from datetime import UTC, datetime
|
3
|
-
from typing import Optional, Any
|
4
4
|
from uuid import UUID, uuid4
|
5
5
|
|
6
6
|
import redis.asyncio as aioredis
|
@@ -24,6 +24,10 @@ class Memory:
|
|
24
24
|
self._msg_no: dict[int, int] = {}
|
25
25
|
self.merge_n = merge_n
|
26
26
|
|
27
|
+
self._gift_base = 0.02
|
28
|
+
self._gift_growth = 1.15
|
29
|
+
self._gift_fail: dict[tuple[int, str], int] = {}
|
30
|
+
|
27
31
|
self.score_threshold = 0.72
|
28
32
|
|
29
33
|
@classmethod
|
@@ -119,7 +123,9 @@ class Memory:
|
|
119
123
|
await self.long.upsert_chunk_with_vector(new_chunk, vector)
|
120
124
|
|
121
125
|
if curr_no % (block_size * self.merge_n) == 0:
|
122
|
-
merged_text, used_ids = await self.long.merge_old_chunks(
|
126
|
+
merged_text, used_ids = await self.long.merge_old_chunks(
|
127
|
+
user_id=user_id, bot=bot, chunk_type="type0", n=self.merge_n
|
128
|
+
)
|
123
129
|
return merged_text, used_ids
|
124
130
|
else:
|
125
131
|
return None, None
|
@@ -159,19 +165,35 @@ class Memory:
|
|
159
165
|
return self._to_openai(data)
|
160
166
|
|
161
167
|
async def add_short_msg(
|
162
|
-
self,
|
163
|
-
|
168
|
+
self,
|
169
|
+
user_id: int,
|
170
|
+
bot: str,
|
171
|
+
text: str,
|
172
|
+
*,
|
173
|
+
role: str = "user",
|
174
|
+
) -> bool:
|
164
175
|
"""
|
165
|
-
|
166
|
-
|
167
|
-
:param bot: Кодовое имя бота
|
168
|
-
:param text: Сообщение для записи
|
169
|
-
:param role: Роль в диалоге
|
170
|
-
:type role: str = "user"
|
171
|
-
:return:
|
176
|
+
Записывает сообщение и возвращает флаг `is_gift_hint`.
|
177
|
+
Шанс = min(1, p0 * growth**fails).
|
172
178
|
"""
|
173
179
|
await self.short.add(bot=bot, user_id=user_id, role=role, text=text)
|
174
180
|
|
181
|
+
if role != "user":
|
182
|
+
return False
|
183
|
+
|
184
|
+
key = (user_id, bot)
|
185
|
+
fails = self._gift_fail.get(key, 0)
|
186
|
+
|
187
|
+
p0, g = self._gift_base, self._gift_growth
|
188
|
+
p = min(1.0, p0 * (g**fails))
|
189
|
+
|
190
|
+
if random.random() < p:
|
191
|
+
self._gift_fail[key] = 0
|
192
|
+
return True
|
193
|
+
else:
|
194
|
+
self._gift_fail[key] = fails + 1
|
195
|
+
return False
|
196
|
+
|
175
197
|
async def add_summary_chunk(
|
176
198
|
self,
|
177
199
|
user_id: int,
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import asyncio
|
2
2
|
from datetime import UTC, datetime
|
3
|
-
from typing import Any
|
3
|
+
from typing import Any
|
4
4
|
from uuid import UUID
|
5
5
|
|
6
6
|
from lein_vector.bases.memory_manager_abc import MemoryManagerABC
|
@@ -95,7 +95,7 @@ class MemoryManagerQdrant(MemoryManagerABC):
|
|
95
95
|
bot: str,
|
96
96
|
chunk_type: str,
|
97
97
|
n: int = 5,
|
98
|
-
) ->
|
98
|
+
) -> tuple[str | None, list[UUID]]:
|
99
99
|
"""
|
100
100
|
Собрать n старых чанков и вернуть:
|
101
101
|
• merged_text — склеенные сообщения c ролями,
|
@@ -1,16 +1,16 @@
|
|
1
|
-
lein_vector/__init__.py,sha256=
|
1
|
+
lein_vector/__init__.py,sha256=48LqJbNqEEpbTFDkXA4BoF7KZ7z8FAKdj9NJ_raKJxk,431
|
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=PpzGUEiCOoApLWtXVB4RTYV9I16ajU_R6_-24kJt6Ug,10237
|
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=NE13Lz-3aX3RjkRhsd5FsezPNk0xju34fFpO3Fa1n9A,1755
|
7
|
-
lein_vector/memory_manager_qdrant.py,sha256=
|
7
|
+
lein_vector/memory_manager_qdrant.py,sha256=K41sbRYz168-yYO9cb9DOl7XWc7nGfWGFvcEz0iu3KE,6369
|
8
8
|
lein_vector/memory_manager_ram.py,sha256=lUATu6U-cZuRHnR6U1L8aJQB8FNK0Wi40vXsZ5fjDgI,6002
|
9
9
|
lein_vector/qdrant_adapter.py,sha256=CJsGvlDdTf4gGCFZIRzfYDeOT_7pzw8pf4VT_QIYDWg,4466
|
10
10
|
lein_vector/redis_short_term.py,sha256=uCcncjgXAlNAY46b3_Pjvrn_G0NEI16kRRR9hxayzak,3155
|
11
11
|
lein_vector/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
12
12
|
lein_vector/schemas/chunk.py,sha256=qq2J7UM94AhKXKg_gnErac5GQF9DCoaEeEHyxZg_xuk,1202
|
13
13
|
lein_vector/sentence_transformer.py,sha256=SjjIa43Y7JxcU9VkpT2Ml-CVXb8tqmrbMutZN6O_I6s,1853
|
14
|
-
openvector_dev-0.1.
|
15
|
-
openvector_dev-0.1.
|
16
|
-
openvector_dev-0.1.
|
14
|
+
openvector_dev-0.1.14.dist-info/METADATA,sha256=oKKk2vWWDCgqs9-MGwgGhsKcrOtMbNRCgPNk02bKIpA,3168
|
15
|
+
openvector_dev-0.1.14.dist-info/WHEEL,sha256=XbeZDeTWKc1w7CSIyre5aMDU_-PohRwTQceYnisIYYY,88
|
16
|
+
openvector_dev-0.1.14.dist-info/RECORD,,
|
File without changes
|