Skip to main content

SAGE Common

SAGE 框架的核心工具和共享组件

Python Version License

📋 Overview

SAGE Common 提供所有 SAGE 包共用的基础工具和组件。 这是基础层(L1),提供:

  • 配置管理 - YAML/TOML 文件支持
  • 日志框架 - 自定义格式化器和处理程序
  • 网络工具 - TCP/UDP 通信支持
  • 序列化工具 - dill 和 pickle 支持
  • 系统工具 - 环境和进程管理
  • 嵌入服务适配 - sage_embedding client/protocol 适配(service-backed only)

该包确保 SAGE 生态系统的一致性并减少代码重复。

🧭 Governance / 团队协作制度

本仓库协作规范与质量门槛请参考:

  • 统一配置 - YAML/TOML 配置加载和验证

  • 高级日志 - 彩色输出、结构化日志、自定义格式器

  • 网络工具 - TCP 客户端/服务器、网络助手 sage-common 作为 L1 基础层,embedding 仅承担 client/protocol 适配职责:

  • ✅ 保留:协议、工厂、wrapper、服务端点客户端转发(service-backed)

  • ❌ 不承载:本地模型生命周期(下载、加载、设备管理、推理执行)

🚀 Quick Start

配置管理

from sage.common.utils.config import load_config

# 加载 YAML 配置
config = load_config("config.yaml")
print(config["database"]["host"])

日志记录

from sage.common.utils.logging import get_logger

logger = get_logger(__name__)
logger.info("Processing started")
logger.error("An error occurred", extra={"user_id": 123})

序列化

from sage.common.utils.serialization import UniversalSerializer

serializer = UniversalSerializer()
data = {"key": "value", "nested": {"data": [1, 2, 3]}}
serialized = serializer.serialize(data)
deserialized = serializer.deserialize(serialized)

核心模块

  • utils.config - 配置管理工具
  • utils.logging - 日志框架和格式化器
  • utils.network - 网络工具和 TCP 客户端/服务器
  • utils.serialization - 序列化工具(包含 dill 支持)
  • utils.system - 环境和进程管理的系统工具
  • _version - 版本管理

📦 Package Structure

sage-common/
├── src/
│   └── sage/
│       └── common/
│           ├── __init__.py
│           ├── _version.py
│           ├── utils/                  # 核心工具
│           │   ├── config/            # 配置管理
│           │   ├── logging/           # 日志框架
│           │   ├── network/           # 网络工具
│           │   ├── serialization/     # 序列化工具
│           │   └── system/            # 系统工具
│           └── components/            # 共享组件
│               ├── sage_embedding/    # 嵌入服务
│               └── sage_llm/         # sageLLM 服务
├── tests/
├── pyproject.toml
└── README.md

🚀 Installation

基础安装

pip install isage-common

开发安装

cd packages/sage-common
pip install -e .

可选依赖安装

# 开发工具(pytest / ruff / 覆盖率等)
pip install isage-common[dev]

📖 快速开始

配置管理

from sage.common.utils.config.loader import ConfigLoader

# 加载配置
config = ConfigLoader("config.yaml")

# 访问配置
model_name = config.get("model.name", default="default-model")

日志

from sage.common.utils.logging.custom_logger import get_logger

# 获取日志器
logger = get_logger(__name__)

# 使用日志器
logger.info("应用程序已启动")
logger.debug("调试信息")
logger.error("发生错误", exc_info=True)

网络工具

from sage.common.utils.network import TCPClient, TCPServer

# 创建 TCP 服务器
server = TCPServer(host="localhost", port=8080)
server.start()

# 创建 TCP 客户端
client = TCPClient(host="localhost", port=8080)
client.connect()
client.send(b"你好,服务器!")

序列化

from sage.common.utils.serialization import serialize, deserialize

# 序列化数据
data = {"key": "value", "numbers": [1, 2, 3]}
serialized = serialize(data, format="dill")

# 反序列化数据
restored = deserialize(serialized, format="dill")

🔧 Configuration

配置文件通常使用 YAML 或 TOML 格式:

# config.yaml
logging:
  level: INFO
  format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s"

network:
  host: localhost
  port: 8080
  timeout: 30

embedding:
  model: BAAI/bge-m3
  method: sagellm
  base_url: http://localhost:8000

🧪 Testing

# 运行单元测试
pytest tests/unit

# 运行集成测试
pytest tests/integration

# 运行覆盖率测试
pytest --cov=sage.common --cov-report=html

📚 Documentation

  • 用户指南 - 查看 sage-docs
  • API 参考 - 查看包文档字符串和类型提示
  • 示例 - 查看各模块中的 examples/ 目录

🤝 Contributing

欢迎贡献!请查看 CONTRIBUTING.md 了解指导原则。

📄 License

该项目采用 MIT 许可证 - 详情请查看 LICENSE 文件。

🔗 相关包

  • sage-kernel - 使用通用工具进行运行时管理
  • sage-libs - 基于通用组件构建库
  • sage-middleware - 使用网络和序列化工具
  • sage-tools - 使用配置和日志工具

📮 支持


SAGE 框架的一部分 | 主仓库

Metadata

Release files for isage-common 0.2.5.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for isage-common 0.2.5.2
File Size Uploaded
isage_common-0.2.5.2.tar.gz 179.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for isage-common 0.2.5.2
File Interpreter ABI Platform
isage_common-0.2.5.2-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 412.0 kB

Release files / isage_common-0.2.5.2.tar.gz

Download URL isage_common-0.2.5.2.tar.gz
Size 179.0 kB
Tags Source
SHA-256 checksum
How to use checksums
8428ed3ccd902fa43e57d705cf956d4b5b735557e115505e0250f9018499b637
BLAKE2b-256 checksum
How to use checksums
617422391f7b270ed0a7d15002abff98aa152428c2bc87fb7977e0d8f0337d68
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14

Release files / isage_common-0.2.5.2-py2.py3-none-any.whl

Download URL isage_common-0.2.5.2-py2.py3-none-any.whl
Size 232.9 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
848b857f2074415e499079f331794544836b7515008d6b7b62960363bf73635e
BLAKE2b-256 checksum
How to use checksums
190e51114ae368eb30dac7160df7ebddd688c14d76897667e8f72f7dbabca7a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page