Skip to main content

SAGE 框架核心公共工具包

Project description

SAGE Common

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

Python Version License

📋 Overview

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

🧭 Governance / 团队协作制度

  • docs/governance/TEAM.md

  • docs/governance/MAINTAINERS.md

  • docs/governance/DEVELOPER_GUIDE.md

  • docs/governance/PR_CHECKLIST.md

  • docs/governance/SELF_HOSTED_RUNNER.md

  • docs/governance/TODO.md

  • 配置管理 - YAML/TOML 文件支持

  • 日志框架 - 自定义格式化器和处理程序

  • 网络工具 - TCP/UDP 通信支持

  • 序列化工具 - dill 和 pickle 支持

  • 系统工具 - 环境和进程管理

  • 嵌入服务 - sage_embedding、sage_llm

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

✨ Features

  • 统一配置 - YAML/TOML 配置加载和验证
  • 高级日志 - 彩色输出、结构化日志、自定义格式器
  • 网络工具 - TCP 客户端/服务器、网络助手
  • 灵活序列化 - 多种后端(dill、pickle、JSON)
  • 系统管理 - 环境检测、进程控制
  • LLM 集成 - 嵌入和 vLLM 服务

🚀 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/         # vLLM 服务
├── tests/
├── pyproject.toml
└── README.md

🚀 Installation

基础安装

pip install isage-common

开发安装

cd packages/sage-common
pip install -e .

可选依赖安装

# 嵌入支持
pip install isage-common[embedding]

# vLLM 支持
pip install isage-common[vllm]

# 完整安装
pip install isage-common[all]

📖 快速开始

配置管理

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: sentence-transformers/all-MiniLM-L6-v2
  device: cuda

🧪 Testing

# 运行单元测试
pytest tests/unit

# 运行集成测试
pytest tests/integration

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

📚 Documentation

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

🤝 Contributing

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

📄 License

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

🔗 相关包

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

📮 支持


SAGE 框架的一部分 | 主仓库

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

isage_common-0.2.4.13.tar.gz (340.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

isage_common-0.2.4.13-py2.py3-none-any.whl (486.0 kB view details)

Uploaded Python 2Python 3

File details

Details for the file isage_common-0.2.4.13.tar.gz.

File metadata

  • Download URL: isage_common-0.2.4.13.tar.gz
  • Upload date:
  • Size: 340.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.11

File hashes

Hashes for isage_common-0.2.4.13.tar.gz
Algorithm Hash digest
SHA256 04d6d3fb9093ddad2950f5375c4feb0dacc8bf411179a14de8dc1c6579768ad7
MD5 ebdc1b219001ebeca214a1a21c951767
BLAKE2b-256 53cf1c5a3678e790bb5c7875d7cac309670c37a34c94de09f55a59d0f1c93c93

See more details on using hashes here.

File details

Details for the file isage_common-0.2.4.13-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for isage_common-0.2.4.13-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 585c4dc6cd449dab8e0ad1775f97569ee3773ffd30dbcb9af06bcde64c1b9baa
MD5 2c9f69122e7a825922d54ee51a404a87
BLAKE2b-256 cb757cd3ee2e19aca56e72f4676f086e5f8587663a772571ab74314534f5799f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page