sycommon-python-lib 0.2.5a2__tar.gz → 0.2.5a3__tar.gz
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_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/PKG-INFO +1 -1
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/pyproject.toml +1 -1
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/agent/deep_agent.py +3 -0
- sycommon_python_lib-0.2.5a3/src/sycommon/tests/test_minimax_reasoning.py +290 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon_python_lib.egg-info/PKG-INFO +1 -1
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon_python_lib.egg-info/SOURCES.txt +1 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/README.md +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/setup.cfg +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/cli.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/core/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/core/console.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/core/models.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/core/project.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/core/utils.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/agent/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/agent/main_agent.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/agent/nodes/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/agent/nodes/example_node.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/agent/states/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/agent/states/agent_state.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/api/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/api/query.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/api/sse/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/api/sse/agent.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/client/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/db/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/db/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/db/model/entity.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/db/service.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/model/parse.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/tools/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/tools/mq.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/base/.env.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/base/.gitignore.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/base/Dockerfile.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/base/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/base/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/base/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/base/app.yaml.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/base/client/FileServiceClient.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/base/client/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/base/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/base/model/file_info.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/base/requirements.txt.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/cli/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/cli/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/cli/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/cli/commands/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/cli/commands/hello.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/cli/pyproject.toml.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/cli/tools/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/web/README.md.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/web/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/web/api/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/web/api/echo.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/web/api/sse/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/web/api/sse/echo.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/web/app.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/web/client/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/web/model/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/web/tools/__init__.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/web/tools/mq.py.tpl +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/nexus/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/__main__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/agents/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/agents/factory.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/agents/prompts.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/cdp/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/cdp/browser.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/cdp/capabilities/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/cdp/capabilities/console.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/cdp/capabilities/dom.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/cdp/capabilities/network.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/cdp/capabilities/page_errors.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/cdp/capabilities/performance.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/cdp/capabilities/screenshot.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/cdp/client.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/cdp/protocol.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/cdp/repl.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/cli.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/commands/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/commands/cdp_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/commands/chat_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/commands/create_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/commands/evaluate_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/commands/init_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/commands/memory_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/commands/resume_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/commands/rollback_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/commands/run_cmd.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/core/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/core/backend.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/core/config.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/core/display.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/core/git_integration.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/core/llm.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/core/state.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/evaluate/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/evaluate/api_evaluator.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/memory/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/memory/compressor.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/memory/full.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/memory/hot.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/memory/manager.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/memory/warm.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/mode/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/mode/create.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/mode/optimize.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/models/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/models/config_models.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/rl/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/rl/baseline_tests.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/rl/checkpoint.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/rl/convergence.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/rl/diagnosis.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/rl/engine.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/rl/environment.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/rl/experience.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/rl/harness_prompts.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/rl/history.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/rl/optimization_logger.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/rl/pre_validation.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/rl/reward.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/rl/strategy_bandit.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/rl/strategy_generator.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/rl/strategy_prompts.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/skills/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/agent/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/agent/agent_manager.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/agent/chat_events.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/agent/mcp/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/agent/mcp/models.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/agent/mcp/tool_loader.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/agent/multi_agent_team.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/agent/sandbox/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/agent/sandbox/file_ops.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/agent/sandbox/http_sandbox_backend.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/agent/sandbox/minio_sync.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/agent/sandbox/sandbox_pool.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/agent/sandbox/sandbox_recovery.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/agent/sandbox/session.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/agent/summarization_utils.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/auth/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/auth/ldap_service.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/auth/oa_cache.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/auth/oa_crypto.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/auth/oa_service.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/auth/wecom_ldap_service.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/config/Config.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/config/DatabaseConfig.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/config/ElasticsearchConfig.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/config/EmbeddingConfig.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/config/LLMConfig.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/config/LangfuseConfig.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/config/MQConfig.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/config/PgConfig.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/config/RedisConfig.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/config/RerankerConfig.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/config/SentryConfig.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/config/XxlJobConfig.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/config/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/database/async_base_db_service.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/database/async_database_service.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/database/base_db_service.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/database/database_service.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/database/elasticsearch_service.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/database/pg_checkpoint_service.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/database/redis_service.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/database/token_usage_db_service.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/health/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/health/health_check.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/health/metrics.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/health/ping.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/heartbeat_process/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/heartbeat_process/heartbeat_config.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/heartbeat_process/heartbeat_process_manager.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/heartbeat_process/heartbeat_process_worker.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/llm/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/llm/embedding.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/llm/get_llm.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/llm/llm_logger.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/llm/llm_tokens.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/llm/llm_with_token_tracking.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/llm/native_with_fallback_runnable.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/llm/output_fixing_runnable.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/llm/struct_token.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/llm/sy_langfuse.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/llm/token_usage_es_service.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/llm/token_usage_mysql_service.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/llm/usage_token.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/logging/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/logging/async_sql_logger.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/logging/kafka_log.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/logging/logger_levels.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/logging/logger_wrapper.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/logging/process_logger.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/logging/sql_logger.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/middleware/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/middleware/background_execution.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/middleware/context.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/middleware/cors.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/middleware/docs.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/middleware/exception.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/middleware/middleware.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/middleware/monitor_memory.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/middleware/mq.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/middleware/sandbox.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/middleware/timeout.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/middleware/token_tracking.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/middleware/tool_result_truncation.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/middleware/traceid.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/models/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/models/base_http.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/models/log.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/models/mqlistener_config.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/models/mqmsg_model.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/models/mqsend_config.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/models/sandbox.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/models/sso_user.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/models/token_usage.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/models/token_usage_mysql.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/models/xxljob_handler_config.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/notice/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/notice/uvicorn_monitor.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/notice/wecom_message.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/rabbitmq/process_pool_consumer.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/rabbitmq/rabbitmq_client.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/rabbitmq/rabbitmq_pool.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/rabbitmq/rabbitmq_service.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/rabbitmq/rabbitmq_service_client_manager.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/rabbitmq/rabbitmq_service_connection_monitor.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/rabbitmq/rabbitmq_service_consumer_manager.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/rabbitmq/rabbitmq_service_core.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/rabbitmq/rabbitmq_service_producer_manager.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/sentry/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/sentry/sy_sentry.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/services.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/sse/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/sse/event.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/sse/sse.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/synacos/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/synacos/example.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/synacos/example2.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/synacos/feign.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/synacos/feign_client.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/synacos/nacos_client_base.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/synacos/nacos_config_manager.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/synacos/nacos_heartbeat_manager.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/synacos/nacos_service.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/synacos/nacos_service_discovery.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/synacos/nacos_service_registration.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/synacos/param.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/tests/deep_agent_server.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/tests/test_deep_agent.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/tests/test_email.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/tests/test_mq.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/tests/test_oa_login.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/tests/test_real_summarization.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/tests/test_summarization_config.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/tests/test_summarization_real.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/tools/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/tools/async_utils.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/tools/docs.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/tools/env.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/tools/merge_headers.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/tools/snowflake.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/tools/syemail.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/tools/timing.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/xxljob/__init__.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/xxljob/xxljob_service.py +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon_python_lib.egg-info/dependency_links.txt +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon_python_lib.egg-info/entry_points.txt +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon_python_lib.egg-info/requires.txt +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon_python_lib.egg-info/top_level.txt +0 -0
- {sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/tests/test_sycli.py +0 -0
{sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycommon/agent/deep_agent.py
RENAMED
|
@@ -484,6 +484,9 @@ class DeepAgent:
|
|
|
484
484
|
SYLogger.warning(f"[DeepAgent] Token 兜底统计失败: {te}")
|
|
485
485
|
|
|
486
486
|
event = ChatEventBuilder.done()
|
|
487
|
+
if total_input_tokens > 0 or total_output_tokens > 0:
|
|
488
|
+
event.data["input_tokens"] = total_input_tokens
|
|
489
|
+
event.data["output_tokens"] = total_output_tokens
|
|
487
490
|
if on_event:
|
|
488
491
|
await on_event(event)
|
|
489
492
|
yield event
|
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
"""
|
|
2
|
+
MiniMax2.5 模型推理内容(reasoning_content)测试
|
|
3
|
+
|
|
4
|
+
测试 MiniMax2.5 模型的流式输出是否正确返回 reasoning_content,
|
|
5
|
+
以及 deep_agent 是否正确将其包装为 AI_CHUNK 事件。
|
|
6
|
+
|
|
7
|
+
使用方式:
|
|
8
|
+
cd sycommon-python-lib
|
|
9
|
+
PYTHONPATH=src python -m src.sycommon.tests.test_minimax_reasoning
|
|
10
|
+
"""
|
|
11
|
+
|
|
12
|
+
import asyncio
|
|
13
|
+
import json
|
|
14
|
+
from langchain.chat_models import init_chat_model
|
|
15
|
+
from langchain_core.messages import HumanMessage, SystemMessage
|
|
16
|
+
|
|
17
|
+
# MiniMax2.5 模型配置
|
|
18
|
+
MODEL = "MiniMax2.5"
|
|
19
|
+
PROVIDER = "openai"
|
|
20
|
+
BASE_URL = "http://221.130.59.59:8888/8vllm/v1"
|
|
21
|
+
API_KEY = "-"
|
|
22
|
+
MAX_TOKENS = 128000
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def create_llm(streaming: bool = False, thinking: bool = True):
|
|
26
|
+
"""创建 MiniMax2.5 LLM 实例"""
|
|
27
|
+
extra_body = {
|
|
28
|
+
"top_k": 20,
|
|
29
|
+
"min_p": 0.0,
|
|
30
|
+
"repetition_penalty": 1.0,
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
if thinking:
|
|
34
|
+
extra_body["chat_template_kwargs"] = {"enable_thinking": True}
|
|
35
|
+
temperature = 0.6
|
|
36
|
+
top_p = 0.95
|
|
37
|
+
presence_penalty = 0.0
|
|
38
|
+
else:
|
|
39
|
+
extra_body["chat_template_kwargs"] = {"enable_thinking": False}
|
|
40
|
+
temperature = 0.7
|
|
41
|
+
top_p = 0.8
|
|
42
|
+
presence_penalty = 1.5
|
|
43
|
+
|
|
44
|
+
if streaming:
|
|
45
|
+
extra_body["stream_options"] = {"include_usage": True}
|
|
46
|
+
|
|
47
|
+
return init_chat_model(
|
|
48
|
+
model_provider=PROVIDER,
|
|
49
|
+
model=MODEL,
|
|
50
|
+
base_url=BASE_URL,
|
|
51
|
+
api_key=API_KEY,
|
|
52
|
+
max_tokens=MAX_TOKENS,
|
|
53
|
+
streaming=streaming,
|
|
54
|
+
temperature=temperature,
|
|
55
|
+
top_p=top_p,
|
|
56
|
+
presence_penalty=presence_penalty,
|
|
57
|
+
extra_body=extra_body,
|
|
58
|
+
timeout=60,
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
async def test_non_stream_basic():
|
|
63
|
+
"""测试非流式基本调用"""
|
|
64
|
+
print("\n" + "=" * 60)
|
|
65
|
+
print("测试1: 非流式基本调用(thinking=True)")
|
|
66
|
+
print("=" * 60)
|
|
67
|
+
|
|
68
|
+
llm = create_llm(streaming=False, thinking=True)
|
|
69
|
+
messages = [
|
|
70
|
+
SystemMessage(content="你是一个有用的助手,使用中文回答。"),
|
|
71
|
+
HumanMessage(content="1+1等于几?请简短回答。"),
|
|
72
|
+
]
|
|
73
|
+
|
|
74
|
+
response = await llm.ainvoke(messages)
|
|
75
|
+
|
|
76
|
+
print(f"类型: {type(response).__name__}")
|
|
77
|
+
print(f"内容: {response.content[:500]}")
|
|
78
|
+
|
|
79
|
+
# 检查 reasoning_content
|
|
80
|
+
reasoning = getattr(response, "reasoning_content", None)
|
|
81
|
+
kwargs_reasoning = getattr(response, "additional_kwargs", {}).get(
|
|
82
|
+
"reasoning_content", None
|
|
83
|
+
)
|
|
84
|
+
print(f"reasoning_content 属性: {repr(reasoning)[:200] if reasoning else 'None'}")
|
|
85
|
+
print(f"additional_kwargs.reasoning_content: {repr(kwargs_reasoning)[:200] if kwargs_reasoning else 'None'}")
|
|
86
|
+
|
|
87
|
+
# 检查 usage
|
|
88
|
+
usage = getattr(response, "usage_metadata", None)
|
|
89
|
+
print(f"usage_metadata: {usage}")
|
|
90
|
+
|
|
91
|
+
assert response.content, "响应内容为空"
|
|
92
|
+
print("[PASS] 非流式调用成功\n")
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
async def test_non_stream_no_thinking():
|
|
96
|
+
"""测试非流式无思考模式"""
|
|
97
|
+
print("=" * 60)
|
|
98
|
+
print("测试2: 非流式调用(thinking=False)")
|
|
99
|
+
print("=" * 60)
|
|
100
|
+
|
|
101
|
+
llm = create_llm(streaming=False, thinking=False)
|
|
102
|
+
messages = [HumanMessage(content="今天星期几?简短回答。")]
|
|
103
|
+
|
|
104
|
+
response = await llm.ainvoke(messages)
|
|
105
|
+
|
|
106
|
+
print(f"内容: {response.content[:500]}")
|
|
107
|
+
|
|
108
|
+
reasoning = getattr(response, "reasoning_content", None)
|
|
109
|
+
kwargs_reasoning = getattr(response, "additional_kwargs", {}).get(
|
|
110
|
+
"reasoning_content", None
|
|
111
|
+
)
|
|
112
|
+
print(f"reasoning_content: {repr(reasoning)[:200] if reasoning else 'None'}")
|
|
113
|
+
print(f"additional_kwargs.reasoning_content: {repr(kwargs_reasoning)[:200] if kwargs_reasoning else 'None'}")
|
|
114
|
+
|
|
115
|
+
print("[PASS] 无思考模式调用成功\n")
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
async def test_stream_with_reasoning():
|
|
119
|
+
"""测试流式输出 + reasoning_content"""
|
|
120
|
+
print("=" * 60)
|
|
121
|
+
print("测试3: 流式调用(thinking=True)- 检查 reasoning_content")
|
|
122
|
+
print("=" * 60)
|
|
123
|
+
|
|
124
|
+
llm = create_llm(streaming=True, thinking=True)
|
|
125
|
+
messages = [
|
|
126
|
+
SystemMessage(content="你是一个有用的助手,使用中文回答。"),
|
|
127
|
+
HumanMessage(content="请思考一下:一个笼子里有鸡和兔,共10个头,26条腿,鸡和兔各几只?"),
|
|
128
|
+
]
|
|
129
|
+
|
|
130
|
+
reasoning_chunks = []
|
|
131
|
+
content_chunks = []
|
|
132
|
+
chunk_types = {}
|
|
133
|
+
|
|
134
|
+
async for chunk in llm.astream(messages):
|
|
135
|
+
chunk_type = type(chunk).__name__
|
|
136
|
+
|
|
137
|
+
# 统计 chunk 类型
|
|
138
|
+
chunk_types[chunk_type] = chunk_types.get(chunk_type, 0) + 1
|
|
139
|
+
|
|
140
|
+
# 提取 reasoning_content
|
|
141
|
+
reasoning = getattr(chunk, "reasoning_content", None)
|
|
142
|
+
kwargs_reasoning = getattr(chunk, "additional_kwargs", {}).get(
|
|
143
|
+
"reasoning_content", None
|
|
144
|
+
)
|
|
145
|
+
|
|
146
|
+
if reasoning:
|
|
147
|
+
reasoning_chunks.append(reasoning)
|
|
148
|
+
# 只打印前几条
|
|
149
|
+
if len(reasoning_chunks) <= 5:
|
|
150
|
+
print(f" [reasoning] {repr(reasoning[:100])}")
|
|
151
|
+
|
|
152
|
+
if kwargs_reasoning:
|
|
153
|
+
reasoning_chunks.append(kwargs_reasoning)
|
|
154
|
+
if len(reasoning_chunks) <= 5:
|
|
155
|
+
print(f" [kwargs.reasoning] {repr(kwargs_reasoning[:100])}")
|
|
156
|
+
|
|
157
|
+
# 提取内容
|
|
158
|
+
if chunk.content:
|
|
159
|
+
content_chunks.append(chunk.content)
|
|
160
|
+
|
|
161
|
+
print(f"\n--- 流式统计 ---")
|
|
162
|
+
print(f"chunk 类型分布: {chunk_types}")
|
|
163
|
+
print(f"reasoning chunks 数量: {len(reasoning_chunks)}")
|
|
164
|
+
print(f"content chunks 数量: {len(content_chunks)}")
|
|
165
|
+
|
|
166
|
+
if reasoning_chunks:
|
|
167
|
+
full_reasoning = "".join(reasoning_chunks)
|
|
168
|
+
print(f"完整 reasoning (前500字): {full_reasoning[:500]}")
|
|
169
|
+
else:
|
|
170
|
+
print("WARNING: 未收到 reasoning_content")
|
|
171
|
+
|
|
172
|
+
full_content = "".join(content_chunks)
|
|
173
|
+
print(f"完整 content (前500字): {full_content[:500]}")
|
|
174
|
+
|
|
175
|
+
print("[PASS] 流式调用完成\n")
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
async def test_stream_no_thinking():
|
|
179
|
+
"""测试流式输出无思考模式"""
|
|
180
|
+
print("=" * 60)
|
|
181
|
+
print("测试4: 流式调用(thinking=False)")
|
|
182
|
+
print("=" * 60)
|
|
183
|
+
|
|
184
|
+
llm = create_llm(streaming=True, thinking=False)
|
|
185
|
+
messages = [HumanMessage(content="用一句话介绍北京。")]
|
|
186
|
+
|
|
187
|
+
reasoning_chunks = []
|
|
188
|
+
content_chunks = []
|
|
189
|
+
|
|
190
|
+
async for chunk in llm.astream(messages):
|
|
191
|
+
reasoning = getattr(chunk, "reasoning_content", None) or getattr(
|
|
192
|
+
chunk, "additional_kwargs", {}
|
|
193
|
+
).get("reasoning_content", None)
|
|
194
|
+
|
|
195
|
+
if reasoning:
|
|
196
|
+
reasoning_chunks.append(reasoning)
|
|
197
|
+
if chunk.content:
|
|
198
|
+
content_chunks.append(chunk.content)
|
|
199
|
+
|
|
200
|
+
full_content = "".join(content_chunks)
|
|
201
|
+
print(f"content: {full_content[:500]}")
|
|
202
|
+
print(f"reasoning chunks: {len(reasoning_chunks)} (应为 0)")
|
|
203
|
+
|
|
204
|
+
assert content_chunks, "没有收到内容"
|
|
205
|
+
print("[PASS] 无思考模式流式调用成功\n")
|
|
206
|
+
|
|
207
|
+
|
|
208
|
+
async def test_reasoning_to_chat_event():
|
|
209
|
+
"""测试将 reasoning_content 转换为 ChatEvent(模拟 deep_agent 逻辑)"""
|
|
210
|
+
print("=" * 60)
|
|
211
|
+
print("测试5: reasoning_content -> ChatEvent 转换")
|
|
212
|
+
print("=" * 60)
|
|
213
|
+
|
|
214
|
+
from sycommon.agent.chat_events import EventType, ChatEvent
|
|
215
|
+
|
|
216
|
+
llm = create_llm(streaming=True, thinking=True)
|
|
217
|
+
messages = [HumanMessage(content="9.11 和 9.9 哪个大?请仔细思考。")]
|
|
218
|
+
|
|
219
|
+
events = []
|
|
220
|
+
|
|
221
|
+
async for msg in llm.astream(messages):
|
|
222
|
+
msg_type = msg.__class__.__name__
|
|
223
|
+
content = msg.content or ""
|
|
224
|
+
|
|
225
|
+
if msg_type in ("AIMessage", "AIMessageChunk"):
|
|
226
|
+
# 模拟 deep_agent 的 reasoning_content 提取逻辑
|
|
227
|
+
reasoning_content = (
|
|
228
|
+
getattr(msg, "reasoning_content", None)
|
|
229
|
+
or getattr(msg, "additional_kwargs", {}).get(
|
|
230
|
+
"reasoning_content", None
|
|
231
|
+
)
|
|
232
|
+
)
|
|
233
|
+
|
|
234
|
+
if reasoning_content:
|
|
235
|
+
event = ChatEvent(
|
|
236
|
+
EventType.AI_CHUNK,
|
|
237
|
+
{"content": reasoning_content, "reasoning": True},
|
|
238
|
+
)
|
|
239
|
+
events.append(event)
|
|
240
|
+
|
|
241
|
+
if content:
|
|
242
|
+
event = ChatEvent(
|
|
243
|
+
EventType.AI_CHUNK,
|
|
244
|
+
{"content": content, "reasoning": False},
|
|
245
|
+
)
|
|
246
|
+
events.append(event)
|
|
247
|
+
|
|
248
|
+
reasoning_events = [e for e in events if e.data.get("reasoning")]
|
|
249
|
+
content_events = [e for e in events if not e.data.get("reasoning")]
|
|
250
|
+
|
|
251
|
+
print(f"总事件数: {len(events)}")
|
|
252
|
+
print(f"reasoning 事件: {len(reasoning_events)}")
|
|
253
|
+
print(f"content 事件: {len(content_events)}")
|
|
254
|
+
|
|
255
|
+
if reasoning_events:
|
|
256
|
+
sample = reasoning_events[0]
|
|
257
|
+
print(f"reasoning 事件示例: type={sample.type}, data={repr(sample.data)[:200]}")
|
|
258
|
+
if content_events:
|
|
259
|
+
sample = content_events[0]
|
|
260
|
+
print(f"content 事件示例: type={sample.type}, data={repr(sample.data)[:200]}")
|
|
261
|
+
|
|
262
|
+
# 验证事件可以序列化
|
|
263
|
+
if events:
|
|
264
|
+
serialized = events[0].to_dict()
|
|
265
|
+
print(f"序列化示例: {json.dumps(serialized, ensure_ascii=False)[:300]}")
|
|
266
|
+
|
|
267
|
+
assert events, "没有生成任何事件"
|
|
268
|
+
print("[PASS] ChatEvent 转换成功\n")
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
async def run_all():
|
|
272
|
+
"""运行所有测试"""
|
|
273
|
+
print("=" * 60)
|
|
274
|
+
print(f"MiniMax2.5 推理内容测试")
|
|
275
|
+
print(f"模型: {MODEL} | 地址: {BASE_URL}")
|
|
276
|
+
print("=" * 60)
|
|
277
|
+
|
|
278
|
+
await test_non_stream_basic()
|
|
279
|
+
await test_non_stream_no_thinking()
|
|
280
|
+
await test_stream_with_reasoning()
|
|
281
|
+
await test_stream_no_thinking()
|
|
282
|
+
await test_reasoning_to_chat_event()
|
|
283
|
+
|
|
284
|
+
print("=" * 60)
|
|
285
|
+
print("全部测试完成!")
|
|
286
|
+
print("=" * 60)
|
|
287
|
+
|
|
288
|
+
|
|
289
|
+
if __name__ == "__main__":
|
|
290
|
+
asyncio.run(run_all())
|
|
@@ -256,6 +256,7 @@ src/sycommon/synacos/param.py
|
|
|
256
256
|
src/sycommon/tests/deep_agent_server.py
|
|
257
257
|
src/sycommon/tests/test_deep_agent.py
|
|
258
258
|
src/sycommon/tests/test_email.py
|
|
259
|
+
src/sycommon/tests/test_minimax_reasoning.py
|
|
259
260
|
src/sycommon/tests/test_mq.py
|
|
260
261
|
src/sycommon/tests/test_oa_login.py
|
|
261
262
|
src/sycommon/tests/test_real_summarization.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/agent/app.py.tpl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/base/.env.tpl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/base/README.md.tpl
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/base/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/base/app.py.tpl
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/base/app.yaml.tpl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/cli/README.md.tpl
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/cli/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/cli/app.py.tpl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/web/README.md.tpl
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/web/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/command/templates/web/app.py.tpl
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/cdp/capabilities/__init__.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/cdp/capabilities/console.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/cdp/capabilities/dom.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/cdp/capabilities/network.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/cdp/capabilities/screenshot.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/commands/create_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/commands/evaluate_cmd.py
RENAMED
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/commands/memory_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/commands/resume_cmd.py
RENAMED
|
File without changes
|
{sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/commands/rollback_cmd.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/core/git_integration.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/evaluate/api_evaluator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{sycommon_python_lib-0.2.5a2 → sycommon_python_lib-0.2.5a3}/src/sycli/models/config_models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|