sycommon-python-lib 0.2.3a4__py3-none-any.whl → 0.2.3a6__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.
- sycommon/agent/deep_agent.py +4 -5
- sycommon/agent/multi_agent_team.py +4 -7
- sycommon/agent/summarization_utils.py +15 -10
- sycommon/models/mqlistener_config.py +1 -2
- sycommon/rabbitmq/rabbitmq_client.py +3 -3
- sycommon/rabbitmq/rabbitmq_service_client_manager.py +0 -1
- sycommon/tests/test_real_summarization.py +166 -0
- {sycommon_python_lib-0.2.3a4.dist-info → sycommon_python_lib-0.2.3a6.dist-info}/METADATA +1 -1
- {sycommon_python_lib-0.2.3a4.dist-info → sycommon_python_lib-0.2.3a6.dist-info}/RECORD +12 -11
- {sycommon_python_lib-0.2.3a4.dist-info → sycommon_python_lib-0.2.3a6.dist-info}/WHEEL +0 -0
- {sycommon_python_lib-0.2.3a4.dist-info → sycommon_python_lib-0.2.3a6.dist-info}/entry_points.txt +0 -0
- {sycommon_python_lib-0.2.3a4.dist-info → sycommon_python_lib-0.2.3a6.dist-info}/top_level.txt +0 -0
sycommon/agent/deep_agent.py
CHANGED
|
@@ -616,9 +616,9 @@ async def create_deep_agent(
|
|
|
616
616
|
# 创建 agent
|
|
617
617
|
from deepagents import create_deep_agent as _create_deep_agent
|
|
618
618
|
|
|
619
|
-
#
|
|
620
|
-
#
|
|
621
|
-
|
|
619
|
+
# 创建 compact_conversation 工具 middleware
|
|
620
|
+
# 自动压缩由 deepagents 内置的 SummarizationMiddleware 处理(通过 model.profile 获取阈值)
|
|
621
|
+
summarization_mw = build_summarization_middleware(
|
|
622
622
|
model, config.model_name, sandbox_backend,
|
|
623
623
|
)
|
|
624
624
|
|
|
@@ -633,8 +633,7 @@ async def create_deep_agent(
|
|
|
633
633
|
BackgroundExecutionMiddleware(backend=sandbox_backend),
|
|
634
634
|
ToolResultTruncationMiddleware(),
|
|
635
635
|
TokenTrackingMiddleware(model_name=config.model_name, user_id=user_id),
|
|
636
|
-
|
|
637
|
-
tool_summarization_mw,
|
|
636
|
+
summarization_mw,
|
|
638
637
|
],
|
|
639
638
|
}
|
|
640
639
|
if skills_path:
|
|
@@ -584,14 +584,12 @@ async def create_multi_agent_team(
|
|
|
584
584
|
from deepagents import create_deep_agent
|
|
585
585
|
from deepagents.middleware.subagents import CompiledSubAgent
|
|
586
586
|
|
|
587
|
-
|
|
588
|
-
_auto_mw, _tool_mw = build_summarization_middleware(model, config.model_name, sandbox_backend)
|
|
587
|
+
summarization_mw = build_summarization_middleware(model, config.model_name, sandbox_backend)
|
|
589
588
|
middleware = [
|
|
590
589
|
BackgroundExecutionMiddleware(backend=sandbox_backend),
|
|
591
590
|
ToolResultTruncationMiddleware(),
|
|
592
591
|
TokenTrackingMiddleware(model_name=config.model_name, user_id=user_id),
|
|
593
|
-
|
|
594
|
-
_tool_mw,
|
|
592
|
+
summarization_mw,
|
|
595
593
|
]
|
|
596
594
|
shared = config.shared_tools or [get_current_date]
|
|
597
595
|
|
|
@@ -632,7 +630,7 @@ async def create_multi_agent_team(
|
|
|
632
630
|
|
|
633
631
|
# 创建协调者 Agent
|
|
634
632
|
coord_name = config.coordinator_name
|
|
635
|
-
|
|
633
|
+
coord_summarization_mw = build_summarization_middleware(model, config.model_name, sandbox_backend)
|
|
636
634
|
coordinator_agent = create_deep_agent(
|
|
637
635
|
model=model,
|
|
638
636
|
tools=config.shared_tools or [get_current_date],
|
|
@@ -648,8 +646,7 @@ async def create_multi_agent_team(
|
|
|
648
646
|
BackgroundExecutionMiddleware(backend=sandbox_backend),
|
|
649
647
|
ToolResultTruncationMiddleware(),
|
|
650
648
|
TokenTrackingMiddleware(model_name=config.model_name, user_id=user_id),
|
|
651
|
-
|
|
652
|
-
_coord_tool_mw,
|
|
649
|
+
coord_summarization_mw,
|
|
653
650
|
],
|
|
654
651
|
)
|
|
655
652
|
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"""上下文压缩 middleware 构建工具。
|
|
2
2
|
|
|
3
|
-
根据 nacos 中配置的模型 maxTokens,用绝对 token
|
|
4
|
-
|
|
3
|
+
根据 nacos 中配置的模型 maxTokens,用绝对 token 数设置压缩阈值。
|
|
4
|
+
仅创建 SummarizationToolMiddleware(compact_conversation 工具),
|
|
5
|
+
自动压缩由 deepagents 内置的 SummarizationMiddleware 处理(通过 model.profile 获取阈值)。
|
|
5
6
|
"""
|
|
6
7
|
|
|
7
8
|
from __future__ import annotations
|
|
8
9
|
|
|
9
|
-
from typing import TYPE_CHECKING
|
|
10
|
+
from typing import TYPE_CHECKING
|
|
10
11
|
|
|
11
12
|
from deepagents.middleware.summarization import (
|
|
12
13
|
SummarizationMiddleware,
|
|
@@ -26,10 +27,15 @@ def build_summarization_middleware(
|
|
|
26
27
|
trigger_fraction: float = 0.70,
|
|
27
28
|
keep_fraction: float = 0.10,
|
|
28
29
|
default_max_tokens: int = 200000,
|
|
29
|
-
) ->
|
|
30
|
-
"""
|
|
30
|
+
) -> SummarizationToolMiddleware:
|
|
31
|
+
"""根据模型上下文窗口大小构建 compact_conversation 工具 middleware。
|
|
31
32
|
|
|
32
|
-
|
|
33
|
+
自动压缩由 deepagents 内置的 SummarizationMiddleware 处理,
|
|
34
|
+
它通过 model.profile.max_input_tokens(由 LLMWithTokenTracking 从 nacos 配置注入)
|
|
35
|
+
计算压缩阈值。
|
|
36
|
+
|
|
37
|
+
此处创建的 SummarizationToolMiddleware 仅提供 compact_conversation 手动压缩工具,
|
|
38
|
+
使用 nacos 配置的 maxTokens 作为其内部 SummarizationMiddleware 的阈值参数。
|
|
33
39
|
|
|
34
40
|
Args:
|
|
35
41
|
model: LLM 实例。
|
|
@@ -40,8 +46,7 @@ def build_summarization_middleware(
|
|
|
40
46
|
default_max_tokens: 无法从配置读取时的默认上下文窗口大小。
|
|
41
47
|
|
|
42
48
|
Returns:
|
|
43
|
-
|
|
44
|
-
第一个是自动压缩 middleware,第二个是 compact_conversation 工具 middleware。
|
|
49
|
+
SummarizationToolMiddleware 实例(提供 compact_conversation 工具)。
|
|
45
50
|
"""
|
|
46
51
|
try:
|
|
47
52
|
from sycommon.config.Config import Config
|
|
@@ -66,7 +71,7 @@ def build_summarization_middleware(
|
|
|
66
71
|
"max_length": 2000,
|
|
67
72
|
},
|
|
68
73
|
)
|
|
69
|
-
print(f"[Summarization]
|
|
74
|
+
print(f"[Summarization] compact_conversation 工具配置: model={model_name}, max_tokens={max_tokens}, "
|
|
70
75
|
f"trigger={trigger_tokens} tokens ({trigger_fraction:.0%}), "
|
|
71
76
|
f"keep={keep_tokens} tokens ({keep_fraction:.0%})")
|
|
72
|
-
return
|
|
77
|
+
return SummarizationToolMiddleware(summ)
|
|
@@ -31,8 +31,7 @@ class RabbitMQListenerConfig(BaseModel):
|
|
|
31
31
|
durable: bool = Field(True, description="是否持久化")
|
|
32
32
|
auto_delete: bool = Field(False, description="是否自动删除队列")
|
|
33
33
|
auto_parse_json: bool = Field(True, description="是否自动解析JSON消息")
|
|
34
|
-
prefetch_count: int = Field(2, description="
|
|
35
|
-
max_concurrent_tasks: int = Field(5, description="handler 最大并发任务数")
|
|
34
|
+
prefetch_count: int = Field(2, description="同时消费并发数(控制MQ预取与handler并发上限)")
|
|
36
35
|
|
|
37
36
|
class Config:
|
|
38
37
|
"""模型配置"""
|
|
@@ -42,7 +42,6 @@ class RabbitMQClient:
|
|
|
42
42
|
auto_delete: bool = False,
|
|
43
43
|
auto_parse_json: bool = True,
|
|
44
44
|
create_if_not_exists: bool = True,
|
|
45
|
-
max_concurrent_tasks: int = 5,
|
|
46
45
|
**kwargs,
|
|
47
46
|
):
|
|
48
47
|
self.connection_pool = connection_pool
|
|
@@ -75,8 +74,9 @@ class RabbitMQClient:
|
|
|
75
74
|
self._connect_lock = asyncio.Lock()
|
|
76
75
|
self._reconnect_semaphore = asyncio.Semaphore(1)
|
|
77
76
|
|
|
78
|
-
# 异步任务并发控制(方案C:收到即ACK + create_task)
|
|
79
|
-
self.
|
|
77
|
+
# 异步任务并发控制(方案C:收到即ACK + create_task,复用 prefetch_count)
|
|
78
|
+
self.prefetch_count = kwargs.get('prefetch_count', 2)
|
|
79
|
+
self._task_semaphore = asyncio.Semaphore(self.prefetch_count)
|
|
80
80
|
self._running_tasks: set = set()
|
|
81
81
|
|
|
82
82
|
@property
|
|
@@ -158,7 +158,6 @@ class RabbitMQClientManager(RabbitMQCoreService):
|
|
|
158
158
|
auto_parse_json=kwargs.get('auto_parse_json', True),
|
|
159
159
|
create_if_not_exists=create_if_not_exists,
|
|
160
160
|
prefetch_count=kwargs.get('prefetch_count', 2),
|
|
161
|
-
max_concurrent_tasks=kwargs.get('max_concurrent_tasks', 5),
|
|
162
161
|
)
|
|
163
162
|
|
|
164
163
|
# 4. 连接客户端
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
"""快速验证自动压缩是否触发。
|
|
2
|
+
|
|
3
|
+
用极小 maxTokens 使 1 轮对话即超过阈值,验证 deepagents 内置的
|
|
4
|
+
SummarizationMiddleware 自动压缩机制。
|
|
5
|
+
"""
|
|
6
|
+
import asyncio
|
|
7
|
+
import sys
|
|
8
|
+
import os
|
|
9
|
+
import time
|
|
10
|
+
import tempfile
|
|
11
|
+
|
|
12
|
+
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "src"))
|
|
13
|
+
|
|
14
|
+
from unittest.mock import AsyncMock, MagicMock, patch
|
|
15
|
+
from langgraph.checkpoint.memory import MemorySaver
|
|
16
|
+
from pathlib import Path
|
|
17
|
+
|
|
18
|
+
from sycommon.agent.deep_agent import AgentConfig
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def make_mock_sandbox():
|
|
22
|
+
sandbox = AsyncMock()
|
|
23
|
+
sandbox.async_sync = AsyncMock(return_value={})
|
|
24
|
+
sandbox.akill_all_processes = AsyncMock()
|
|
25
|
+
sandbox.atree = AsyncMock(return_value=None)
|
|
26
|
+
sandbox.async_sync_dirs = AsyncMock()
|
|
27
|
+
return sandbox
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def make_model():
|
|
31
|
+
from langchain.chat_models import init_chat_model
|
|
32
|
+
return init_chat_model(
|
|
33
|
+
model="glm-5.1", model_provider="openai", streaming=False,
|
|
34
|
+
base_url="http://10.10.6.132:3000/v1",
|
|
35
|
+
api_key="sk-3hXhO7uCG5CRi7t3THE2cWTKVJqesXJ38cKstHZhDVXHQOIn",
|
|
36
|
+
temperature=0.7, max_retries=2, timeout=120,
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
# Monkey-patch 检测自动压缩
|
|
41
|
+
auto_triggered_flags = {}
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
async def run_test(nacos_max_tokens: int):
|
|
45
|
+
"""1 轮对话 + 极小 maxTokens"""
|
|
46
|
+
trigger_threshold = int(nacos_max_tokens * 0.85)
|
|
47
|
+
auto_triggered_flags["latest"] = False
|
|
48
|
+
print(f"\n{'='*60}")
|
|
49
|
+
print(f" maxTokens={nacos_max_tokens}, 自动压缩阈值={trigger_threshold} tokens")
|
|
50
|
+
print(f"{'='*60}")
|
|
51
|
+
|
|
52
|
+
mock_llm_cfg = {
|
|
53
|
+
"model": "glm-5.1",
|
|
54
|
+
"provider": "openai",
|
|
55
|
+
"baseUrl": "http://10.10.6.132:3000/v1",
|
|
56
|
+
"maxTokens": nacos_max_tokens,
|
|
57
|
+
"vision": False,
|
|
58
|
+
"callFunction": True,
|
|
59
|
+
"default": True,
|
|
60
|
+
"apiKey": "sk-3hXhO7uCG5CRi7t3THE2cWTKVJqesXJ38cKstHZhDVXHQOIn",
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
model = make_model()
|
|
64
|
+
|
|
65
|
+
# Monkey-patch awrap_model_call 检测自动压缩
|
|
66
|
+
from deepagents.middleware import summarization as summ_module
|
|
67
|
+
_orig_awrap = summ_module._DeepAgentsSummarizationMiddleware.awrap_model_call
|
|
68
|
+
|
|
69
|
+
async def _patched_awrap(self_inner, request, handler):
|
|
70
|
+
result = await _orig_awrap(self_inner, request, handler)
|
|
71
|
+
from deepagents.middleware.summarization import ExtendedModelResponse
|
|
72
|
+
if isinstance(result, ExtendedModelResponse):
|
|
73
|
+
auto_triggered_flags["latest"] = True
|
|
74
|
+
print(f" >>> 自动压缩触发! <<<")
|
|
75
|
+
return result
|
|
76
|
+
|
|
77
|
+
summ_module._DeepAgentsSummarizationMiddleware.awrap_model_call = _patched_awrap
|
|
78
|
+
|
|
79
|
+
try:
|
|
80
|
+
with patch("sycommon.config.Config.Config") as mock_config_cls, \
|
|
81
|
+
patch("sycommon.config.LLMConfig.LLMConfig") as mock_llmconfig_cls, \
|
|
82
|
+
patch("sycommon.agent.deep_agent.get_llm", return_value=model):
|
|
83
|
+
|
|
84
|
+
config_instance = MagicMock()
|
|
85
|
+
config_instance.get_llm_config = MagicMock(return_value=mock_llm_cfg)
|
|
86
|
+
config_instance.get_default_llm_model_name = MagicMock(return_value="glm-5.1")
|
|
87
|
+
mock_config_cls.return_value = config_instance
|
|
88
|
+
|
|
89
|
+
from sycommon.config.LLMConfig import LLMConfig
|
|
90
|
+
mock_llmconfig_cls.from_config = MagicMock(return_value=LLMConfig(**mock_llm_cfg))
|
|
91
|
+
|
|
92
|
+
agent_config = AgentConfig(
|
|
93
|
+
model_name="glm-5.1",
|
|
94
|
+
system_prompt="你是测试助手。用中文回答,写500字以上。",
|
|
95
|
+
tools=[],
|
|
96
|
+
debug=False,
|
|
97
|
+
)
|
|
98
|
+
|
|
99
|
+
sandbox = make_mock_sandbox()
|
|
100
|
+
checkpointer = MemorySaver()
|
|
101
|
+
|
|
102
|
+
with patch("sycommon.agent.summarization_utils.build_summarization_middleware") as mock_build:
|
|
103
|
+
from deepagents.middleware.summarization import SummarizationMiddleware, SummarizationToolMiddleware
|
|
104
|
+
from deepagents.backends.filesystem import FilesystemBackend
|
|
105
|
+
|
|
106
|
+
fs_backend = FilesystemBackend(
|
|
107
|
+
root_dir=f"/tmp/test_summ_{int(time.time())}", virtual_mode=True,
|
|
108
|
+
)
|
|
109
|
+
summ = SummarizationMiddleware(
|
|
110
|
+
model=model, backend=fs_backend,
|
|
111
|
+
trigger=("tokens", int(nacos_max_tokens * 0.70)),
|
|
112
|
+
keep=("tokens", int(nacos_max_tokens * 0.10)),
|
|
113
|
+
)
|
|
114
|
+
mock_build.return_value = (summ, SummarizationToolMiddleware(summ))
|
|
115
|
+
|
|
116
|
+
from sycommon.agent.deep_agent import create_deep_agent
|
|
117
|
+
deep_agent = await create_deep_agent(
|
|
118
|
+
user_id=f"test_{int(time.time())}",
|
|
119
|
+
config=agent_config,
|
|
120
|
+
sandbox_backend=sandbox,
|
|
121
|
+
checkpointer=checkpointer,
|
|
122
|
+
project_root=Path(tempfile.mkdtemp()),
|
|
123
|
+
)
|
|
124
|
+
|
|
125
|
+
print(f" Agent 创建成功")
|
|
126
|
+
|
|
127
|
+
question = "请详细介绍中国古代四大发明,每个发明至少写200字。"
|
|
128
|
+
print(f" Q: {question}")
|
|
129
|
+
|
|
130
|
+
try:
|
|
131
|
+
async for event in deep_agent.chat(question):
|
|
132
|
+
if event.type == "tool_call":
|
|
133
|
+
tn = event.data.get("name", "") if isinstance(event.data, dict) else str(event.data)
|
|
134
|
+
print(f" [tool_call] {tn}")
|
|
135
|
+
if "compact" in tn.lower():
|
|
136
|
+
print(f" >>> compact_conversation 工具调用! <<<")
|
|
137
|
+
except Exception as e:
|
|
138
|
+
print(f" chat 出错: {e}")
|
|
139
|
+
|
|
140
|
+
finally:
|
|
141
|
+
summ_module._DeepAgentsSummarizationMiddleware.awrap_model_call = _orig_awrap
|
|
142
|
+
|
|
143
|
+
triggered = auto_triggered_flags.get("latest", False)
|
|
144
|
+
print(f" 结果: 自动压缩 {'已触发' if triggered else '未触发'}")
|
|
145
|
+
return triggered
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
async def main():
|
|
149
|
+
print(f"快速验证自动压缩 - {time.strftime('%H:%M:%S')}")
|
|
150
|
+
|
|
151
|
+
r1 = await run_test(nacos_max_tokens=3000)
|
|
152
|
+
r2 = await run_test(nacos_max_tokens=1000)
|
|
153
|
+
|
|
154
|
+
print(f"\n{'='*60}")
|
|
155
|
+
print(f" maxTokens=3000 (阈值2550): {'已触发' if r1 else '未触发'}")
|
|
156
|
+
print(f" maxTokens=1000 (阈值850): {'已触发' if r2 else '未触发'}")
|
|
157
|
+
print(f"{'='*60}")
|
|
158
|
+
|
|
159
|
+
if r1 or r2:
|
|
160
|
+
print(f"\n 结论: 自动压缩机制工作正常!")
|
|
161
|
+
else:
|
|
162
|
+
print(f"\n 结论: 未触发,需要排查")
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
if __name__ == "__main__":
|
|
166
|
+
asyncio.run(main())
|
|
@@ -129,9 +129,9 @@ sycommon/services.py,sha256=N6Z4D-qmdyGBZ5z72j2dtSfpXnrnWjEuSyKCgSIY0Cs,21332
|
|
|
129
129
|
sycommon/agent/__init__.py,sha256=PXxUiDwdzxv3WQfD8R5MKXtV7qZPvbRc0wPxnS-ZsNQ,3752
|
|
130
130
|
sycommon/agent/agent_manager.py,sha256=UhhaekEumT7g4v_Z1UB4jTp13X0n8M8erYaQdkGGWkA,13620
|
|
131
131
|
sycommon/agent/chat_events.py,sha256=bWAMWYIZ2L_yqUcn5jq9ius_lQxLHEv4zQLEqX6UaeM,13190
|
|
132
|
-
sycommon/agent/deep_agent.py,sha256=
|
|
133
|
-
sycommon/agent/multi_agent_team.py,sha256=
|
|
134
|
-
sycommon/agent/summarization_utils.py,sha256=
|
|
132
|
+
sycommon/agent/deep_agent.py,sha256=3RY4ijSxm7-I7NN4wlr-1PcIvdFShjFE39_qNfCVGb4,30500
|
|
133
|
+
sycommon/agent/multi_agent_team.py,sha256=6Ba4MbdEDVuXe6iBE_Q84kzr5zJYLo_djdpkkwJhShg,26558
|
|
134
|
+
sycommon/agent/summarization_utils.py,sha256=7iugXE60wkeJ8AfU2G3S6JePhRRA2uUTau8zJRXTNYk,2909
|
|
135
135
|
sycommon/agent/sandbox/__init__.py,sha256=jR7LlkD4J4Y6QYyRXQClkwmqDBCCPmycV_hQV9p9YHw,4621
|
|
136
136
|
sycommon/agent/sandbox/file_ops.py,sha256=6ymRMM0WchM7G_YmF1ckrLjf5s_JCh1wrAp2g_-sg8k,23162
|
|
137
137
|
sycommon/agent/sandbox/http_sandbox_backend.py,sha256=mjiTZnADvUq_rO05ewllo_eGDS4uTdD2e2GGYvBpF-Q,56150
|
|
@@ -206,7 +206,7 @@ sycommon/middleware/traceid.py,sha256=HX4zg7Tp_mPNr2eWDDvK3f7GFJ6eOSeW062Xcc-xsh
|
|
|
206
206
|
sycommon/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
207
207
|
sycommon/models/base_http.py,sha256=EICAAibx3xhjBsLqm35Mi3DCqxp0FME4rD_3iQVjT_E,3051
|
|
208
208
|
sycommon/models/log.py,sha256=rZpj6VkDRxK3B6H7XSeWdYZshU8F0Sks8bq1p6pPlDw,500
|
|
209
|
-
sycommon/models/mqlistener_config.py,sha256=
|
|
209
|
+
sycommon/models/mqlistener_config.py,sha256=japihb4kmP5ZqvqQEs6C7CmcrPlE1UmhAtCimoL61xI,1704
|
|
210
210
|
sycommon/models/mqmsg_model.py,sha256=Zo-LsDMFuF1Vkx9ZmwBC9E7TrCw-7nAQD2TE4v9-6F4,291
|
|
211
211
|
sycommon/models/mqsend_config.py,sha256=NQX9dc8PpuquMG36GCVhJe8omAW1KVXXqr6lSRU6D7I,268
|
|
212
212
|
sycommon/models/sandbox.py,sha256=5QPLqKCDm0UeyC8CHb2G0d7Rb3f7MYaLq12RFRSeOxc,7293
|
|
@@ -218,10 +218,10 @@ sycommon/notice/__init__.py,sha256=cVYbKlLLMFHckyDpx21CTZCMTufqZk_uHuEIxUNxwx4,1
|
|
|
218
218
|
sycommon/notice/uvicorn_monitor.py,sha256=O4R25z032dAlvlbU0WLo0LJqoL1Z52fMFgFdb1e3Cls,11833
|
|
219
219
|
sycommon/notice/wecom_message.py,sha256=PsyoQpPiR0OZaUI9KLXd0-zUwp5okd44q71J60QiRm8,11952
|
|
220
220
|
sycommon/rabbitmq/process_pool_consumer.py,sha256=BFBiK6s5n1wbbj9Mlc_s-z4Gh6JvDN4RyS1qHWfhgCY,29714
|
|
221
|
-
sycommon/rabbitmq/rabbitmq_client.py,sha256=
|
|
221
|
+
sycommon/rabbitmq/rabbitmq_client.py,sha256=IbuXEHa70e4V2KUHDE9MK4WxphDCJDOWy5Z3GGT3KjM,18674
|
|
222
222
|
sycommon/rabbitmq/rabbitmq_pool.py,sha256=mUo1-Nlj0xXKG9MdBA0hvkt1NIvKD4AGsDouzQDY5nQ,13835
|
|
223
223
|
sycommon/rabbitmq/rabbitmq_service.py,sha256=q9c9-9RSvJaY_PE62PQ4mX7ropNsGr0Frcrm5gjaPao,9774
|
|
224
|
-
sycommon/rabbitmq/rabbitmq_service_client_manager.py,sha256=
|
|
224
|
+
sycommon/rabbitmq/rabbitmq_service_client_manager.py,sha256=kYhLuUajSY-42vi3HKf3Z3K92WYtp39NU1hPg6GQwe8,9797
|
|
225
225
|
sycommon/rabbitmq/rabbitmq_service_connection_monitor.py,sha256=rdXTG-pZg3-un7y1ObTsNiwRH3Ni6oQaPfRNpAZ2A38,4557
|
|
226
226
|
sycommon/rabbitmq/rabbitmq_service_consumer_manager.py,sha256=S-nU7dGy-yt9SZ3KsMrG_MZMfV7wONLrnEOTIxmeDnc,9962
|
|
227
227
|
sycommon/rabbitmq/rabbitmq_service_core.py,sha256=kr4MaR4txhCRHUPxofa-Zt6-YJbfCw_vFfFVg-LE5cE,5230
|
|
@@ -247,6 +247,7 @@ sycommon/tests/deep_agent_server.py,sha256=t7snT2J6KWZrjJsYVi4TU5jpfvXNz4iuzMk4c
|
|
|
247
247
|
sycommon/tests/test_deep_agent.py,sha256=34gP2KL8SSmtqqhaA9OV97OAl_I0T4TfEutZrR_0srM,5874
|
|
248
248
|
sycommon/tests/test_email.py,sha256=-oPtYVGQzJ3Cv-op3ZNRMeyYOF-UNidGJC35CHRgjGQ,5442
|
|
249
249
|
sycommon/tests/test_mq.py,sha256=Gpr9Eep-osRkcnlwGeshROEf83Ai3qYbAMHwpoML68o,4366
|
|
250
|
+
sycommon/tests/test_real_summarization.py,sha256=7B89es7-UwULk-kq9xUiWH1ylXUO3QDJm4oZWzJNPk0,6193
|
|
250
251
|
sycommon/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
251
252
|
sycommon/tools/async_utils.py,sha256=e2Bp8v0LDrnViBIZ3zcCWtm_01w67vG34VhnAyGu9ZM,1015
|
|
252
253
|
sycommon/tools/docs.py,sha256=OPj2ETheuWjXLyaXtaZPbwmJKfJaYXV5s4XMVAUNrms,1607
|
|
@@ -257,8 +258,8 @@ sycommon/tools/syemail.py,sha256=BDFhgf7WDOQeTcjxJEQdu0dQhnHFPO_p3eI0-Ni3LhQ,561
|
|
|
257
258
|
sycommon/tools/timing.py,sha256=OiiE7P07lRoMzX9kzb8sZU9cDb0zNnqIlY5pWqHcnkY,2064
|
|
258
259
|
sycommon/xxljob/__init__.py,sha256=7eoBlQxv-B39IfRSCY2bkqdGYs1QRe1umAWd88VMEEM,86
|
|
259
260
|
sycommon/xxljob/xxljob_service.py,sha256=JIEJaGXhqrTLcyxlyynSrsHg9bBnDNzX-D4qIWLRPUE,6815
|
|
260
|
-
sycommon_python_lib-0.2.
|
|
261
|
-
sycommon_python_lib-0.2.
|
|
262
|
-
sycommon_python_lib-0.2.
|
|
263
|
-
sycommon_python_lib-0.2.
|
|
264
|
-
sycommon_python_lib-0.2.
|
|
261
|
+
sycommon_python_lib-0.2.3a6.dist-info/METADATA,sha256=ql7nW3cSs3U-REXMv-nYh1A5eks3i-YkktTX891cZC8,7741
|
|
262
|
+
sycommon_python_lib-0.2.3a6.dist-info/WHEEL,sha256=aeYiig01lYGDzBgS8HxWXOg3uV61G9ijOsup-k9o1sk,91
|
|
263
|
+
sycommon_python_lib-0.2.3a6.dist-info/entry_points.txt,sha256=gsR4SssKxDWjRU8ggidzNcdMXDPRSKRS7UaGyNP84Qg,92
|
|
264
|
+
sycommon_python_lib-0.2.3a6.dist-info/top_level.txt,sha256=RgphKrg7nJyZ7irJqbxFr-5H2LUYTvI7ivoWZH2hcD0,29
|
|
265
|
+
sycommon_python_lib-0.2.3a6.dist-info/RECORD,,
|
|
File without changes
|
{sycommon_python_lib-0.2.3a4.dist-info → sycommon_python_lib-0.2.3a6.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.3a4.dist-info → sycommon_python_lib-0.2.3a6.dist-info}/top_level.txt
RENAMED
|
File without changes
|