springbootAI 2.1.0__tar.gz → 2.1.1__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.
- {springbootai-2.1.0 → springbootai-2.1.1}/CHANGELOG.md +8 -0
- {springbootai-2.1.0/springbootAI.egg-info → springbootai-2.1.1}/PKG-INFO +12 -12
- {springbootai-2.1.0 → springbootai-2.1.1}/README.md +5 -5
- {springbootai-2.1.0 → springbootai-2.1.1}/pyproject.toml +7 -7
- {springbootai-2.1.0 → springbootai-2.1.1}/requirements-ai.txt +3 -3
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/__init__.py +1 -1
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/ai/__init__.py +1 -1
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/csv/__init__.py +1 -1
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/data/__init__.py +1 -1
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/datasource/__init__.py +1 -1
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/excel/__init__.py +1 -1
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/i18n/__init__.py +1 -1
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langchain/__init__.py +1 -1
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/__init__.py +1 -1
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/version.py +1 -1
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/test/__init__.py +1 -1
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/tx/__init__.py +1 -1
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/utils/banner.py +1 -1
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/validation/__init__.py +1 -1
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/web/swagger.py +2 -2
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/websocket/__init__.py +1 -1
- {springbootai-2.1.0 → springbootai-2.1.1/springbootAI.egg-info}/PKG-INFO +12 -12
- {springbootai-2.1.0 → springbootai-2.1.1}/springbootAI.egg-info/requires.txt +6 -6
- {springbootai-2.1.0 → springbootai-2.1.1}/LICENSE +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/MANIFEST.in +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/SECURITY.md +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/requirements-langgraph.txt +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/requirements-mcp.txt +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/requirements.txt +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/setup.cfg +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/setup.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/ai/advisors.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/ai/annotations.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/ai/autoconfig.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/ai/core.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/ai/etl.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/ai/memory.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/ai/observability.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/ai/providers.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/ai/resilience.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/ai/tools.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/ai/vectorstore.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/annotations/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/annotations/cache.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/annotations/cloud.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/annotations/conditional.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/annotations/core.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/annotations/langchain.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/annotations/langgraph.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/annotations/messaging.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/aop/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/aop/cloud_aop.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/aop/comprehensive_aop.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/aop/method_interceptor.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/aop/proxy_factory.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/cloud/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/cloud/discovery.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/cloud/feign.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/cloud/gateway.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/cloud/load_balancer.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/cloud/seata.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/cloud/seata_bridge.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/cloud/sentinel.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/cloud/tracer.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/cloud/transaction_store.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/config/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/config/binding.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/config/config_loader.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/context/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/context/application_context.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/context/bean_definition.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/context/bean_factory.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/context/registry.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/context/scanner.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/core/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/core/graceful_shutdown.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/core/typing_utils.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/csv/annotations.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/csv/converters.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/csv/easy_csv.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/csv/exceptions.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/csv/reader.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/csv/writer.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/data/page.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/data/repository.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/data/specification.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/datasource/annotations.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/datasource/context.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/datasource/dynamic.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/event/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/event/publisher.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/excel/annotations.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/excel/converters.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/excel/easy_excel.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/excel/exceptions.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/excel/reader.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/excel/style.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/excel/writer.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/i18n/accessor.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/i18n/auto_config.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/i18n/holder.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/i18n/locale.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/i18n/locale_resolver.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/i18n/message_source.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/i18n/middleware.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/i18n/properties.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/i18n/sources.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langchain/adapters.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langchain/agents/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langchain/agents/services.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langchain/annotations.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langchain/autoconfig.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langchain/callbacks/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langchain/callbacks/handlers.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langchain/chains/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langchain/chains/services.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langchain/core.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langchain/indexes/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langchain/indexes/index.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langchain/loaders/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langchain/loaders/loaders.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langchain/memory/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langchain/memory/memory.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langchain/parsers/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langchain/parsers/parsers.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langchain/partners.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langchain/prompts/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langchain/prompts/templates.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langchain/retrievers/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langchain/retrievers/retrievers.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langchain/tools/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langchain/tools/tools.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langchain/utilities/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langchain/utilities/utils.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langchain/vectorstores/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langchain/vectorstores/stores.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langgraph/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langgraph/annotation_runtime.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langgraph/annotations.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langgraph/autoconfig.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langgraph/checkpoint.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langgraph/config.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/langgraph/runtime.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/logging/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/logging/loguru_logger.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/main.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/mcp/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/mcp/annotation_runtime.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/mcp/annotations.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/mcp/autoconfig.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/mcp/client.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/mcp/config.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/mcp/server.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/messaging/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/messaging/rabbitmq.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/monitoring/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/monitoring/prometheus.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/database.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/ddl_auto.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/migration.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/mybatis_integration.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/annotations/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/annotations/annotations.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/cache/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/cache/cache.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/cache/redis_cache.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/circuit_breaker/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/circuit_breaker/circuit_breaker.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/configuration.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/core/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/core/sql_session.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/core/sql_session_factory.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/dialect/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/dialect/dialect.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/dynamic_sql/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/dynamic_sql/dynamic_sql.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/interceptor/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/interceptor/interceptor.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/mapper/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/mapper/mapper.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/metrics/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/metrics/metrics.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/pool/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/pool/connection_pool.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/security/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/security/access_control.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/security/password_encoder.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/security/sensitive_data_masker.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/security/sql_injection_detector.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/transaction/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/transaction/transaction.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/type_handler/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/type_handler/type_handler.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/xml_parser/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/orm/pymybatis/xml_parser/xml_parser.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/retry/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/retry/retry_annotations.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/retry/retry_decorator.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/scheduling/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/scheduling/scheduler.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/security/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/security/jwt_utils.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/security/replay_protection.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/security/secret_manager.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/security/security_aop.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/security/security_context.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/test/slicing.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/tracing/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/tracing/skywalking.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/tx/events.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/tx/synchronization.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/utils/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/utils/bean_utils.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/utils/logger.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/utils/redis_client.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/validation/aop.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/validation/constraints.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/validation/exceptions.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/validation/validator.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/web/__init__.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/web/actuator.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/web/exception_handler.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/web/health.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/web/interceptor.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/web/result.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/web/web_context.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/websocket/annotations.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/websocket/broker.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/websocket/exceptions.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/websocket/handler.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/websocket/router.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/spring/websocket/session.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/springbootAI.egg-info/SOURCES.txt +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/springbootAI.egg-info/dependency_links.txt +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/springbootAI.egg-info/entry_points.txt +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/springbootAI.egg-info/top_level.txt +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/sql/seata_undo_log.sql +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_actuator.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_ai_comprehensive.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_ai_declarative_annotations.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_ai_module.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_annotation_combinations.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_annotations_contract.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_aop_annotations_full.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_bean_utils.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_cache_annotations.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_cloud_embedded_full.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_component_init_error.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_conditional_annotations.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_config_binding.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_config_fixes_185.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_connection_resilience.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_core_annotations_full.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_csv_module.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_data_repository.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_datasource_routing.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_ddl_auto.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_di_config_event_full.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_excel_module.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_i18n_module.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_jpa_version_transient.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_langchain_comprehensive.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_langchain_ext.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_langchain_module.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_langgraph_comprehensive.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_langgraph_module.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_logging_config.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_mcp_module.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_new_features.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_orm_pymybatis_full.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_production_readiness.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_pymybatis_contract.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_seata_bridge.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_seata_durable_store.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_security.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_security_full.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_security_hardening.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_swagger_module.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_test_slicing.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_transactional_events.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_validation_module.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_web_annotations_full.py +0 -0
- {springbootai-2.1.0 → springbootai-2.1.1}/tests/test_websocket_module.py +0 -0
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
本项目从 `2.1.0` 开始按 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/) 记录面向使用者的变化,并使用语义化版本号。
|
|
4
4
|
|
|
5
|
+
## [2.1.1] - 2026-08-12
|
|
6
|
+
|
|
7
|
+
### 修复
|
|
8
|
+
|
|
9
|
+
- 锁定兼容的 `langchain-core==1.5.4` 与 `langchain-openai==1.4.2`,避免可选 AI 依赖解析冲突。
|
|
10
|
+
- CI 中间件恢复命令改用 `docker compose up -d --wait <service>`,兼容不支持 `start --wait` 的 Compose 版本。
|
|
11
|
+
|
|
5
12
|
## [2.1.0] - 2026-08-12
|
|
6
13
|
|
|
7
14
|
### 新增
|
|
@@ -34,4 +41,5 @@
|
|
|
34
41
|
- Seata `distributed` 提供真实 TC + TCC 协调,不是 Python AT 数据源代理,不会自动生成 `undo_log`。
|
|
35
42
|
- 内存 LangGraph checkpointer 仅用于测试;多 worker 生产环境必须注入共享存储后端。
|
|
36
43
|
|
|
44
|
+
[2.1.1]: https://github.com/YUCONGGEN/springbootAI/compare/v2.1.0...v2.1.1
|
|
37
45
|
[2.1.0]: https://github.com/YUCONGGEN/springbootAI/compare/v2.0.2...v2.1.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: springbootAI
|
|
3
|
-
Version: 2.1.
|
|
3
|
+
Version: 2.1.1
|
|
4
4
|
Summary: Spring-style Python framework with Web, ORM, Cloud and AI integrations
|
|
5
5
|
Author-email: YuConggen <1516933915@qq.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -56,16 +56,16 @@ Requires-Dist: sqlglot==27.28.1; extra == "ast"
|
|
|
56
56
|
Provides-Extra: excel
|
|
57
57
|
Requires-Dist: openpyxl==3.1.5; extra == "excel"
|
|
58
58
|
Provides-Extra: ai
|
|
59
|
-
Requires-Dist: langchain-openai==1.4.
|
|
60
|
-
Requires-Dist: langchain-core==1.5.
|
|
59
|
+
Requires-Dist: langchain-openai==1.4.2; extra == "ai"
|
|
60
|
+
Requires-Dist: langchain-core==1.5.4; extra == "ai"
|
|
61
61
|
Requires-Dist: langchain-classic==1.0.8; extra == "ai"
|
|
62
62
|
Requires-Dist: langchain-text-splitters==1.1.2; extra == "ai"
|
|
63
63
|
Requires-Dist: langchain-community==0.4.2; extra == "ai"
|
|
64
64
|
Requires-Dist: numpy==2.2.6; extra == "ai"
|
|
65
65
|
Requires-Dist: pydantic==2.13.4; extra == "ai"
|
|
66
66
|
Provides-Extra: langchain
|
|
67
|
-
Requires-Dist: langchain-openai==1.4.
|
|
68
|
-
Requires-Dist: langchain-core==1.5.
|
|
67
|
+
Requires-Dist: langchain-openai==1.4.2; extra == "langchain"
|
|
68
|
+
Requires-Dist: langchain-core==1.5.4; extra == "langchain"
|
|
69
69
|
Requires-Dist: langchain-classic==1.0.8; extra == "langchain"
|
|
70
70
|
Requires-Dist: langchain-text-splitters==1.1.2; extra == "langchain"
|
|
71
71
|
Requires-Dist: langchain-community==0.4.2; extra == "langchain"
|
|
@@ -108,8 +108,8 @@ Requires-Dist: defusedxml==0.7.1; extra == "full"
|
|
|
108
108
|
Requires-Dist: requests==2.34.2; extra == "full"
|
|
109
109
|
Requires-Dist: httpx==0.28.1; extra == "full"
|
|
110
110
|
Requires-Dist: openpyxl==3.1.5; extra == "full"
|
|
111
|
-
Requires-Dist: langchain-openai==1.4.
|
|
112
|
-
Requires-Dist: langchain-core==1.5.
|
|
111
|
+
Requires-Dist: langchain-openai==1.4.2; extra == "full"
|
|
112
|
+
Requires-Dist: langchain-core==1.5.4; extra == "full"
|
|
113
113
|
Requires-Dist: langchain-classic==1.0.8; extra == "full"
|
|
114
114
|
Requires-Dist: langchain-text-splitters==1.1.2; extra == "full"
|
|
115
115
|
Requires-Dist: langchain-community==0.4.2; extra == "full"
|
|
@@ -151,7 +151,7 @@ SpringBootAI 是一个采用 Spring 风格注解和分层结构的 Python 应用
|
|
|
151
151
|
| AI 与编排 | 模型调用、Tools、RAG、Chain、状态图、MCP client/server | LangChain / LangGraph / 官方 MCP SDK |
|
|
152
152
|
| 生产治理 | 健康检查、Prometheus、限流熔断、追踪、Swagger | prometheus-client / OpenTelemetry / OpenAPI |
|
|
153
153
|
|
|
154
|
-
当前版本是 `2.1.
|
|
154
|
+
当前版本是 `2.1.1`;支持 Python 3.10、3.11 和 3.12,许可证为 MIT。项目仍标记为 Beta。用于公网高并发、合规敏感或支付/订单/库存等核心系统前,必须完成目标数据库、流量模型、故障恢复和安全基线验证。内嵌 Gateway 适合内部路由,不替代公网 Nginx/Kong/WAF;Seata `distributed` 当前验证的是官方 TC + TCC 回调,不会为 Python 数据库操作自动生成 AT `undo_log`。
|
|
155
155
|
|
|
156
156
|
[新手指南](https://github.com/YUCONGGEN/springbootAI/blob/master/doc/BEGINNER_GUIDE.md) | [全部文档](https://github.com/YUCONGGEN/springbootAI/tree/master/doc) | [变更日志](https://github.com/YUCONGGEN/springbootAI/blob/master/CHANGELOG.md) | [安全报告](https://github.com/YUCONGGEN/springbootAI/blob/master/SECURITY.md) | [发布检查](https://github.com/YUCONGGEN/springbootAI/blob/master/doc/RELEASE_CHECKLIST.md)
|
|
157
157
|
|
|
@@ -314,10 +314,10 @@ SpringBootAI 是一个 **Python Web 框架**。它把 Java Spring Boot 的"注
|
|
|
314
314
|
|
|
315
315
|
| 组件 | 当前版本 |
|
|
316
316
|
|------|----------|
|
|
317
|
-
| `spring` 框架 API | 2.1.
|
|
318
|
-
| `spring.orm.pymybatis` | 2.1.
|
|
319
|
-
| `spring.ai` AI 模块 | 2.1.
|
|
320
|
-
| `spring.langchain` LangChain 模块 | 2.1.
|
|
317
|
+
| `spring` 框架 API | 2.1.1 |
|
|
318
|
+
| `spring.orm.pymybatis` | 2.1.1 |
|
|
319
|
+
| `spring.ai` AI 模块 | 2.1.1 |
|
|
320
|
+
| `spring.langchain` LangChain 模块 | 2.1.1 |
|
|
321
321
|
| Python | 3.10+ |
|
|
322
322
|
|
|
323
323
|
### 1.4 适合什么场景
|
|
@@ -17,7 +17,7 @@ SpringBootAI 是一个采用 Spring 风格注解和分层结构的 Python 应用
|
|
|
17
17
|
| AI 与编排 | 模型调用、Tools、RAG、Chain、状态图、MCP client/server | LangChain / LangGraph / 官方 MCP SDK |
|
|
18
18
|
| 生产治理 | 健康检查、Prometheus、限流熔断、追踪、Swagger | prometheus-client / OpenTelemetry / OpenAPI |
|
|
19
19
|
|
|
20
|
-
当前版本是 `2.1.
|
|
20
|
+
当前版本是 `2.1.1`;支持 Python 3.10、3.11 和 3.12,许可证为 MIT。项目仍标记为 Beta。用于公网高并发、合规敏感或支付/订单/库存等核心系统前,必须完成目标数据库、流量模型、故障恢复和安全基线验证。内嵌 Gateway 适合内部路由,不替代公网 Nginx/Kong/WAF;Seata `distributed` 当前验证的是官方 TC + TCC 回调,不会为 Python 数据库操作自动生成 AT `undo_log`。
|
|
21
21
|
|
|
22
22
|
[新手指南](https://github.com/YUCONGGEN/springbootAI/blob/master/doc/BEGINNER_GUIDE.md) | [全部文档](https://github.com/YUCONGGEN/springbootAI/tree/master/doc) | [变更日志](https://github.com/YUCONGGEN/springbootAI/blob/master/CHANGELOG.md) | [安全报告](https://github.com/YUCONGGEN/springbootAI/blob/master/SECURITY.md) | [发布检查](https://github.com/YUCONGGEN/springbootAI/blob/master/doc/RELEASE_CHECKLIST.md)
|
|
23
23
|
|
|
@@ -180,10 +180,10 @@ SpringBootAI 是一个 **Python Web 框架**。它把 Java Spring Boot 的"注
|
|
|
180
180
|
|
|
181
181
|
| 组件 | 当前版本 |
|
|
182
182
|
|------|----------|
|
|
183
|
-
| `spring` 框架 API | 2.1.
|
|
184
|
-
| `spring.orm.pymybatis` | 2.1.
|
|
185
|
-
| `spring.ai` AI 模块 | 2.1.
|
|
186
|
-
| `spring.langchain` LangChain 模块 | 2.1.
|
|
183
|
+
| `spring` 框架 API | 2.1.1 |
|
|
184
|
+
| `spring.orm.pymybatis` | 2.1.1 |
|
|
185
|
+
| `spring.ai` AI 模块 | 2.1.1 |
|
|
186
|
+
| `spring.langchain` LangChain 模块 | 2.1.1 |
|
|
187
187
|
| Python | 3.10+ |
|
|
188
188
|
|
|
189
189
|
### 1.4 适合什么场景
|
|
@@ -12,7 +12,7 @@ build-backend = "setuptools.build_meta"
|
|
|
12
12
|
[project]
|
|
13
13
|
# 发行名 springbootAI(PyPI 包名,pip install springbootAI);导入包名仍为 spring
|
|
14
14
|
name = "springbootAI"
|
|
15
|
-
version = "2.1.
|
|
15
|
+
version = "2.1.1"
|
|
16
16
|
description = "Spring-style Python framework with Web, ORM, Cloud and AI integrations"
|
|
17
17
|
readme = "README.md"
|
|
18
18
|
license = "MIT"
|
|
@@ -101,8 +101,8 @@ excel = ["openpyxl==3.1.5"]
|
|
|
101
101
|
# 依赖清单同步自 requirements-ai.txt(所有版本号 == 已测试验证)
|
|
102
102
|
# ========================================
|
|
103
103
|
ai = [
|
|
104
|
-
"langchain-openai==1.4.
|
|
105
|
-
"langchain-core==1.5.
|
|
104
|
+
"langchain-openai==1.4.2",
|
|
105
|
+
"langchain-core==1.5.4",
|
|
106
106
|
"langchain-classic==1.0.8",
|
|
107
107
|
"langchain-text-splitters==1.1.2",
|
|
108
108
|
"langchain-community==0.4.2",
|
|
@@ -117,8 +117,8 @@ ai = [
|
|
|
117
117
|
# 详见 doc/LANGCHAIN_MODULE.md
|
|
118
118
|
# ========================================
|
|
119
119
|
langchain = [
|
|
120
|
-
"langchain-openai==1.4.
|
|
121
|
-
"langchain-core==1.5.
|
|
120
|
+
"langchain-openai==1.4.2",
|
|
121
|
+
"langchain-core==1.5.4",
|
|
122
122
|
"langchain-classic==1.0.8",
|
|
123
123
|
"langchain-text-splitters==1.1.2",
|
|
124
124
|
"langchain-community==0.4.2",
|
|
@@ -191,8 +191,8 @@ full = [
|
|
|
191
191
|
# Excel
|
|
192
192
|
"openpyxl==3.1.5",
|
|
193
193
|
# AI 模块(对齐 springbootAI[ai])
|
|
194
|
-
"langchain-openai==1.4.
|
|
195
|
-
"langchain-core==1.5.
|
|
194
|
+
"langchain-openai==1.4.2",
|
|
195
|
+
"langchain-core==1.5.4",
|
|
196
196
|
"langchain-classic==1.0.8",
|
|
197
197
|
"langchain-text-splitters==1.1.2",
|
|
198
198
|
"langchain-community==0.4.2",
|
|
@@ -7,21 +7,21 @@
|
|
|
7
7
|
#
|
|
8
8
|
# 安装方式(按需):
|
|
9
9
|
# pip install -r requirements-ai.txt # 全量
|
|
10
|
-
# pip install langchain-openai==1.4.
|
|
10
|
+
# pip install langchain-openai==1.4.2 # 仅 OpenAI 适配
|
|
11
11
|
#
|
|
12
12
|
# 推荐 Python: 3.10+(CI 测试 3.10 / 3.11 / 3.12)
|
|
13
13
|
# 所有固定版本均经过本仓库测试与依赖漏洞扫描
|
|
14
14
|
# ========================================
|
|
15
15
|
|
|
16
16
|
# LangChain 核心(1.x 架构,BaseChatModel / Embeddings / Runnable 接口)
|
|
17
|
-
langchain-core==1.5.
|
|
17
|
+
langchain-core==1.5.4
|
|
18
18
|
|
|
19
19
|
# LangChain classic(LLMChain / ConversationChain / initialize_agent 等经典 API)
|
|
20
20
|
# langchain 1.x 把经典 Chain/Agent 迁到了 langchain-classic 包
|
|
21
21
|
langchain-classic==1.0.8
|
|
22
22
|
|
|
23
23
|
# OpenAI 兼容模型适配(OpenAI / Azure / DeepSeek / Moonshot)
|
|
24
|
-
langchain-openai==1.4.
|
|
24
|
+
langchain-openai==1.4.2
|
|
25
25
|
|
|
26
26
|
# 文档切分器(RecursiveCharacterTextSplitter / CharacterTextSplitter)
|
|
27
27
|
langchain-text-splitters==1.1.2
|
|
@@ -65,7 +65,7 @@ from .properties import load_properties, parse_properties
|
|
|
65
65
|
from .middleware import LocaleResolverMiddleware, get_request_locale
|
|
66
66
|
from .auto_config import MessageSourceAutoConfiguration, configure_message_source
|
|
67
67
|
|
|
68
|
-
__version__ = "2.1.
|
|
68
|
+
__version__ = "2.1.1"
|
|
69
69
|
|
|
70
70
|
__all__ = [
|
|
71
71
|
# Locale
|
|
@@ -11,7 +11,7 @@ class BannerPrinter:
|
|
|
11
11
|
|_| |___/
|
|
12
12
|
"""
|
|
13
13
|
|
|
14
|
-
def __init__(self, version: str = "2.1.
|
|
14
|
+
def __init__(self, version: str = "2.1.1"): # v1.8.7 修复 import 时提前创建 logs/ 目录
|
|
15
15
|
self.version = version
|
|
16
16
|
self.logger = SpringLogger()
|
|
17
17
|
|
|
@@ -268,7 +268,7 @@ class SwaggerConfig:
|
|
|
268
268
|
enabled: bool = True
|
|
269
269
|
title: str = "SpringBootAI Application"
|
|
270
270
|
description: str = ""
|
|
271
|
-
version: str = "2.1.
|
|
271
|
+
version: str = "2.1.1"
|
|
272
272
|
terms_of_service: str = ""
|
|
273
273
|
contact_name: str = ""
|
|
274
274
|
contact_email: str = ""
|
|
@@ -356,7 +356,7 @@ class SwaggerConfig:
|
|
|
356
356
|
enabled=api_docs_enabled,
|
|
357
357
|
title=_opt("title", "SpringBootAI Application"),
|
|
358
358
|
description=_opt("description", ""),
|
|
359
|
-
version=_opt("version", "2.1.
|
|
359
|
+
version=_opt("version", "2.1.1"),
|
|
360
360
|
terms_of_service=_opt("terms-of-service", ""),
|
|
361
361
|
contact_name=_opt("contact-name", "") or (contact.get("name", "") if isinstance(contact, dict) else ""),
|
|
362
362
|
contact_email=_opt("contact-email", "") or (contact.get("email", "") if isinstance(contact, dict) else ""),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: springbootAI
|
|
3
|
-
Version: 2.1.
|
|
3
|
+
Version: 2.1.1
|
|
4
4
|
Summary: Spring-style Python framework with Web, ORM, Cloud and AI integrations
|
|
5
5
|
Author-email: YuConggen <1516933915@qq.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -56,16 +56,16 @@ Requires-Dist: sqlglot==27.28.1; extra == "ast"
|
|
|
56
56
|
Provides-Extra: excel
|
|
57
57
|
Requires-Dist: openpyxl==3.1.5; extra == "excel"
|
|
58
58
|
Provides-Extra: ai
|
|
59
|
-
Requires-Dist: langchain-openai==1.4.
|
|
60
|
-
Requires-Dist: langchain-core==1.5.
|
|
59
|
+
Requires-Dist: langchain-openai==1.4.2; extra == "ai"
|
|
60
|
+
Requires-Dist: langchain-core==1.5.4; extra == "ai"
|
|
61
61
|
Requires-Dist: langchain-classic==1.0.8; extra == "ai"
|
|
62
62
|
Requires-Dist: langchain-text-splitters==1.1.2; extra == "ai"
|
|
63
63
|
Requires-Dist: langchain-community==0.4.2; extra == "ai"
|
|
64
64
|
Requires-Dist: numpy==2.2.6; extra == "ai"
|
|
65
65
|
Requires-Dist: pydantic==2.13.4; extra == "ai"
|
|
66
66
|
Provides-Extra: langchain
|
|
67
|
-
Requires-Dist: langchain-openai==1.4.
|
|
68
|
-
Requires-Dist: langchain-core==1.5.
|
|
67
|
+
Requires-Dist: langchain-openai==1.4.2; extra == "langchain"
|
|
68
|
+
Requires-Dist: langchain-core==1.5.4; extra == "langchain"
|
|
69
69
|
Requires-Dist: langchain-classic==1.0.8; extra == "langchain"
|
|
70
70
|
Requires-Dist: langchain-text-splitters==1.1.2; extra == "langchain"
|
|
71
71
|
Requires-Dist: langchain-community==0.4.2; extra == "langchain"
|
|
@@ -108,8 +108,8 @@ Requires-Dist: defusedxml==0.7.1; extra == "full"
|
|
|
108
108
|
Requires-Dist: requests==2.34.2; extra == "full"
|
|
109
109
|
Requires-Dist: httpx==0.28.1; extra == "full"
|
|
110
110
|
Requires-Dist: openpyxl==3.1.5; extra == "full"
|
|
111
|
-
Requires-Dist: langchain-openai==1.4.
|
|
112
|
-
Requires-Dist: langchain-core==1.5.
|
|
111
|
+
Requires-Dist: langchain-openai==1.4.2; extra == "full"
|
|
112
|
+
Requires-Dist: langchain-core==1.5.4; extra == "full"
|
|
113
113
|
Requires-Dist: langchain-classic==1.0.8; extra == "full"
|
|
114
114
|
Requires-Dist: langchain-text-splitters==1.1.2; extra == "full"
|
|
115
115
|
Requires-Dist: langchain-community==0.4.2; extra == "full"
|
|
@@ -151,7 +151,7 @@ SpringBootAI 是一个采用 Spring 风格注解和分层结构的 Python 应用
|
|
|
151
151
|
| AI 与编排 | 模型调用、Tools、RAG、Chain、状态图、MCP client/server | LangChain / LangGraph / 官方 MCP SDK |
|
|
152
152
|
| 生产治理 | 健康检查、Prometheus、限流熔断、追踪、Swagger | prometheus-client / OpenTelemetry / OpenAPI |
|
|
153
153
|
|
|
154
|
-
当前版本是 `2.1.
|
|
154
|
+
当前版本是 `2.1.1`;支持 Python 3.10、3.11 和 3.12,许可证为 MIT。项目仍标记为 Beta。用于公网高并发、合规敏感或支付/订单/库存等核心系统前,必须完成目标数据库、流量模型、故障恢复和安全基线验证。内嵌 Gateway 适合内部路由,不替代公网 Nginx/Kong/WAF;Seata `distributed` 当前验证的是官方 TC + TCC 回调,不会为 Python 数据库操作自动生成 AT `undo_log`。
|
|
155
155
|
|
|
156
156
|
[新手指南](https://github.com/YUCONGGEN/springbootAI/blob/master/doc/BEGINNER_GUIDE.md) | [全部文档](https://github.com/YUCONGGEN/springbootAI/tree/master/doc) | [变更日志](https://github.com/YUCONGGEN/springbootAI/blob/master/CHANGELOG.md) | [安全报告](https://github.com/YUCONGGEN/springbootAI/blob/master/SECURITY.md) | [发布检查](https://github.com/YUCONGGEN/springbootAI/blob/master/doc/RELEASE_CHECKLIST.md)
|
|
157
157
|
|
|
@@ -314,10 +314,10 @@ SpringBootAI 是一个 **Python Web 框架**。它把 Java Spring Boot 的"注
|
|
|
314
314
|
|
|
315
315
|
| 组件 | 当前版本 |
|
|
316
316
|
|------|----------|
|
|
317
|
-
| `spring` 框架 API | 2.1.
|
|
318
|
-
| `spring.orm.pymybatis` | 2.1.
|
|
319
|
-
| `spring.ai` AI 模块 | 2.1.
|
|
320
|
-
| `spring.langchain` LangChain 模块 | 2.1.
|
|
317
|
+
| `spring` 框架 API | 2.1.1 |
|
|
318
|
+
| `spring.orm.pymybatis` | 2.1.1 |
|
|
319
|
+
| `spring.ai` AI 模块 | 2.1.1 |
|
|
320
|
+
| `spring.langchain` LangChain 模块 | 2.1.1 |
|
|
321
321
|
| Python | 3.10+ |
|
|
322
322
|
|
|
323
323
|
### 1.4 适合什么场景
|
|
@@ -13,8 +13,8 @@ httpx==0.28.1
|
|
|
13
13
|
defusedxml==0.7.1
|
|
14
14
|
|
|
15
15
|
[ai]
|
|
16
|
-
langchain-openai==1.4.
|
|
17
|
-
langchain-core==1.5.
|
|
16
|
+
langchain-openai==1.4.2
|
|
17
|
+
langchain-core==1.5.4
|
|
18
18
|
langchain-classic==1.0.8
|
|
19
19
|
langchain-text-splitters==1.1.2
|
|
20
20
|
langchain-community==0.4.2
|
|
@@ -47,8 +47,8 @@ defusedxml==0.7.1
|
|
|
47
47
|
requests==2.34.2
|
|
48
48
|
httpx==0.28.1
|
|
49
49
|
openpyxl==3.1.5
|
|
50
|
-
langchain-openai==1.4.
|
|
51
|
-
langchain-core==1.5.
|
|
50
|
+
langchain-openai==1.4.2
|
|
51
|
+
langchain-core==1.5.4
|
|
52
52
|
langchain-classic==1.0.8
|
|
53
53
|
langchain-text-splitters==1.1.2
|
|
54
54
|
langchain-community==0.4.2
|
|
@@ -71,8 +71,8 @@ langgraph-checkpoint-sqlite==3.1.1
|
|
|
71
71
|
mcp==2.0.0
|
|
72
72
|
|
|
73
73
|
[langchain]
|
|
74
|
-
langchain-openai==1.4.
|
|
75
|
-
langchain-core==1.5.
|
|
74
|
+
langchain-openai==1.4.2
|
|
75
|
+
langchain-core==1.5.4
|
|
76
76
|
langchain-classic==1.0.8
|
|
77
77
|
langchain-text-splitters==1.1.2
|
|
78
78
|
langchain-community==0.4.2
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|