SAGE Libraries - merged into isage-common 0.2.5.0 (sage.libs.* now provided by isage-common)
Project description
SAGE Libraries Package (sage-libs)
📋 Overview
sage-libs 是 SAGE 框架的算法库层,定位为 接口/注册表层 (Interface Layer)。
🧭 Governance / 团队协作制度
本仓库协作规范与质量门槛请参考:
.github/copilot-instructions.mdquickstart.shhooks/pre-commithooks/pre-push
核心设计原则:
- 📦 轻量级接口:定义抽象基类和工厂函数
- 🔌 可插拔实现:重型实现迁出为独立 PyPI 包 (
isage-*) - 🏗️ 注册表模式:通过
register_*/create_*动态加载实现
🏗️ Architecture
sage-libs (Interface Layer)
├── agentic/interface/ → isage-agentic (Agent framework)
├── rag/interface/ → isage-rag (RAG toolkit)
├── finetune/interface/ → isage-finetune (Fine-tuning)
├── eval/interface/ → isage-eval (Evaluation)
├── privacy/interface/ → isage-privacy (Privacy/Unlearning)
├── safety/interface/ → isage-safety (Guardrails)
├── amms/interface/ → isage-amms (AMM algorithms)
└── foundation/ → Built-in utilities (no external deps)
ANNS 已完全迁移到独立包
isage-anns(导入路径:sage_anns),不再由sage-libs承载。
📚 Five Core Domains
1. 🤖 Agentic (Agent Framework)
接口:sage.libs.agentic.interface
| Base Class | Description |
|---|---|
BaseAgent |
Agent execution interface |
BasePlanner |
Task planning (ToT, ReAct, Hierarchical) |
BaseToolSelector |
Tool selection (Keyword, Embedding, Hybrid) |
BaseOrchestrator |
Multi-agent orchestration |
IntentRecognizer |
Intent recognition |
IntentClassifier |
Intent classification |
BaseReasoningStrategy |
Reasoning strategies (CoT, ToT, ReAct) |
from sage.libs.agentic.interface import (
BaseAgent, BasePlanner, BaseToolSelector,
create_agent, create_planner, register_agent
)
# Register implementation (from isage-agentic)
register_agent("react", ReactAgent)
# Create via factory
agent = create_agent("react", tools=[...])
2. 📖 RAG (Retrieval-Augmented Generation)
接口:sage.libs.rag.interface
| Base Class | Description |
|---|---|
DocumentLoader |
Document loading (PDF, DOCX, MD, etc.) |
TextChunker |
Text segmentation |
Retriever |
Vector/BM25 retrieval |
Reranker |
Reranking (Cross-Encoder, LLM) |
QueryRewriter |
Query rewriting (HyDE, Multi-Query) |
RAGPipeline |
End-to-end RAG pipeline |
from sage.libs.rag.interface import (
DocumentLoader, Retriever, RAGPipeline,
create_loader, create_retriever, create_pipeline
)
loader = create_loader("pdf")
retriever = create_retriever("faiss", dimension=768)
3. 🔧 Fine-tuning
接口:sage.libs.finetune.interface
| Base Class | Description |
|---|---|
FineTuner |
Fine-tuning trainer |
DatasetLoader |
Training data loading |
TrainingCallback |
Training callbacks (WandB, TensorBoard) |
TrainingStrategy |
PEFT strategies (LoRA, QLoRA, Prefix) |
from sage.libs.finetune.interface import (
FineTuner, TrainingStrategy, TrainingConfig, LoRAConfig,
create_trainer, create_strategy
)
strategy = create_strategy("lora")
trainer = create_trainer("lora", model_name="gpt2")
4. 📊 Evaluation
接口:sage.libs.eval.interface
| Base Class | Description |
|---|---|
BaseMetric |
Evaluation metrics (Accuracy, BLEU, ROUGE) |
BaseLLMJudge |
LLM-as-a-Judge (Faithfulness, Relevance) |
BaseProfiler |
Performance profiling |
BaseBenchmark |
Benchmark suites |
from sage.libs.eval.interface import (
BaseMetric, BaseLLMJudge, MetricResult,
create_metric, create_judge
)
metric = create_metric("accuracy")
judge = create_judge("faithfulness", model="gpt-4")
5. 🔒 Privacy & Safety
Privacy 接口:sage.libs.privacy.interface
| Base Class | Description |
|---|---|
BaseUnlearner |
Machine unlearning (SISA, Gradient Ascent) |
BasePrivacyMechanism |
DP mechanisms (Laplace, Gaussian) |
BaseDPOptimizer |
DP optimizers (DP-SGD, DP-Adam) |
BaseFederatedClient/Server |
Federated learning |
Safety 接口:sage.libs.safety.interface
| Base Class | Description |
|---|---|
BaseGuardrail |
Content safety guardrails |
BaseJailbreakDetector |
Jailbreak/prompt injection detection |
BaseToxicityDetector |
Toxicity detection |
BaseAdversarialDefense |
Adversarial input defense |
from sage.libs.privacy import create_unlearner, create_mechanism
from sage.libs.safety import create_guardrail, create_jailbreak_detector
unlearner = create_unlearner("sisa", num_shards=5)
guardrail = create_guardrail("llm", model="gpt-4")
注意:
sage-libs仅保留隐私接口与注册表;sage.libs.privacy.unlearning中的具体 DP / unlearning 实现已迁移到isage-privacy(导入路径:sage_privacy.*)。
📦 External Packages (isage-*)
| Domain | Interface (sage-libs) | Implementation (PyPI) | Status |
|---|---|---|---|
| Agentic | agentic/interface/ |
isage-agentic |
🚧 Planned |
| RAG | rag/interface/ |
isage-rag |
🚧 Planned |
| Fine-tuning | finetune/interface/ |
isage-finetune |
🚧 Planned |
| Evaluation | eval/interface/ |
isage-eval |
🚧 Planned |
| Privacy | privacy/interface/ |
isage-privacy |
🚧 Planned |
| Safety | safety/interface/ |
isage-safety |
🚧 Planned |
| ANNS | moved to sage_anns |
isage-anns |
✅ Available |
| AMM | amms/interface/ |
isage-amms |
🚧 Migration |
🚀 Installation
Basic Installation
# From PyPI
pip install isage-libs
# Development install (in SAGE repo)
pip install -e packages/sage-libs
With Optional Extras
# All interfaces
pip install isage-libs[all]
# Specific domains
pip install isage-libs[agentic] # Agent framework
pip install isage-libs[rag] # RAG toolkit
pip install isage-libs[finetune] # Fine-tuning
pip install isage-libs[eval] # Evaluation
pip install isage-libs[privacy] # Privacy/Unlearning
pip install isage-libs[safety] # Safety/Guardrails
🏛️ Built-in Utilities
These modules are included directly (no external deps):
Foundation (foundation/)
from sage.libs.foundation import (
text_utils, # Text processing
io_utils, # File I/O helpers
async_utils, # Async utilities
)
DataOps (dataops/)
from sage.libs.dataops import (
text_ops, # Normalization, truncation
table_ops, # DataFrame operations
json_ops, # JSON processing
sampling, # Sampling strategies
)
Lightweight Safety (safety/)
from sage.libs.safety import (
content_filter, # Pattern-based filtering
pii_scrubber, # PII detection
policy_check, # Policy validation
)
📖 Usage Example
# 1. Define custom implementation
from sage.libs.agentic.interface import BaseAgent, AgentResult, register_agent
class MyAgent(BaseAgent):
@property
def name(self) -> str:
return "my_agent"
def run(self, task, context=None):
# Implementation
return AgentResult(success=True, output="Done")
# 2. Register implementation
register_agent("my_agent", MyAgent)
# 3. Use via factory
from sage.libs.agentic.interface import create_agent
agent = create_agent("my_agent")
result = agent.run("Hello")
📚 Documentation
- Architecture:
../../CHANGELOG.md - API Reference:
docs-public/docs_src/api-reference/sage-libs/ - Tutorials:
examples/tutorials/L3-libs/
🔗 Related Packages
- SAGE - Main framework
- sage-benchmark - Evaluation benchmarks
- SageVDB - Vector database
- NeuroMem - Memory system
📄 License
Apache 2.0 License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file isage_libs-0.2.5.0-cp311-cp311-manylinux_2_34_x86_64.whl.
File metadata
- Download URL: isage_libs-0.2.5.0-cp311-cp311-manylinux_2_34_x86_64.whl
- Upload date:
- Size: 5.8 kB
- Tags: CPython 3.11, manylinux: glibc 2.34+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7889718ee1235ac2cb68d6c6fdbe03a1d254fba20230c599ddfd46f07d972909
|
|
| MD5 |
ede609ffdff74dfc538d444d8b9406ff
|
|
| BLAKE2b-256 |
6ce63e40773112bfb262ead804a7c184a4b12b5a61bc89d946f5f046775969b7
|