intellistream-sage-kernel


Nameintellistream-sage-kernel JSON
Version 0.1.6 PyPI version JSON
download
home_pageNone
SummarySAGE Framework - 统一内核 (Core + Runtime + Utils + CLI)
upload_time2025-08-08 14:25:24
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseMIT
keywords data reasoning kernel dataflow llm ml framework rag intellistream cli ai sage
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # SAGE Kernel

> 🚀 SAGE 框架的核心内核包 - 整合了核心框架和命令行工具

## 📦 包含内容

**SAGE Kernel** 是 SAGE 框架的核心包,整合了原来的 `sage-kernel` 和 `sage-cli` 两个包的功能:

### 🏗️ 核心组件 (sage.core)
- **数据流处理框架**: 高性能的 dataflow-native 处理引擎
- **函数管理**: Function registry 和 operator 管理
- **配置系统**: 统一的配置管理和验证

### ⚙️ 任务管理 (sage.kernels.jobmanager)  
- **任务调度**: 分布式任务执行和调度
- **执行图**: DAG 执行图构建和优化
- **客户端接口**: JobManager 客户端和服务端

### 🔧 运行时系统 (sage.kernels.runtime)
- **服务工厂**: 任务和服务的动态创建
- **通信队列**: 高性能的进程间通信
- **服务管理**: 微服务架构的服务生命周期管理

### 💻 命令行工具 (sage.cli)
- **集群管理**: 分布式集群的部署和管理
- **任务提交**: 命令行任务提交和监控
- **配置管理**: 交互式配置设置和验证
- **扩展管理**: 插件和扩展的安装管理

## 🚀 快速开始

### 安装

```bash
# 从源码安装
pip install -e packages/sage-kernel

# 或者从 PyPI 安装(发布后)
pip install intellistream-sage-kernel
```

### 使用核心API

```python
from sage.core import Function, Config
from sage.kernels.jobmanager import JobManager
from sage.kernels.runtime import ServiceTaskFactory

# 创建并使用函数
@Function
def my_processor(data):
    return data * 2

# 使用 JobManager
job_manager = JobManager()
job = job_manager.submit_job(my_processor, data=[1, 2, 3])
```

### 使用命令行工具

```bash
# 启动 SAGE 集群
sage cluster start

# 提交任务
sage job submit my_job.py

# 管理配置
sage config set utils.provider openai
sage config show

# 查看帮助
sage --help
```

## 🏗️ 架构设计

```
sage-kernel/
├── src/sage/
│   ├── core/           # 核心框架
│   ├── jobmanager/     # 任务管理
│   ├── runtime/        # 运行时系统
│   └── cli/            # 命令行工具
├── tests/              # 标准化测试结构
│   ├── core/
│   ├── jobmanager/
│   ├── runtime/
│   └── cli/
└── pyproject.toml      # 统一配置
```

## 🧪 测试

```bash
# 运行所有测试
pytest

# 运行特定模块测试
pytest tests/core/
pytest tests/cli/

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

## 🔧 开发环境

```bash
# 安装开发依赖
pip install -e "packages/sage-kernel[dev]"

# 安装增强CLI功能
pip install -e "packages/sage-kernel[enhanced]"

# 代码格式化
black src/ tests/
ruff check src/ tests/

# 类型检查
mypy src/sage
```

## 📚 依赖关系

### 内部依赖
- `sage-utils`: 基础工具包

### 外部核心依赖
- **ML/AI**: torch, transformers, sentence-transformers, faiss-cpu
- **Web/API**: fastapi, uvicorn, aiohttp
- **数据处理**: numpy, pandas, scipy, scikit-learn
- **CLI**: typer, rich, click, questionary
- **配置**: pydantic, PyYAML, python-dotenv

## 🎯 设计理念

### 单一内核原则
将核心框架和 CLI 工具合并到一个包中,遵循以下原则:

1. **统一入口**: 所有核心功能通过一个包提供
2. **逻辑分离**: 不同组件保持清晰的模块边界  
3. **依赖优化**: 避免循环依赖,清晰的依赖层次
4. **测试标准化**: 所有测试文件位于标准 `tests/` 目录

### CLI 集成策略
- CLI 功能完全集成到内核包中
- 通过入口点 `sage` 和 `sage-kernel` 提供命令行访问
- CLI 模块不污染核心 API 的导入

## 🔄 从旧包迁移

如果你之前使用 `sage-kernel` 或 `sage-cli`:

```python
# 旧代码
from sage_core import Function
from sage_cli.main import app

# 新代码  
from sage.core import Function
# CLI 通过命令行使用: sage command
```

## 📋 TODO

- [ ] 完善模块间的导入优化
- [ ] 添加性能基准测试
- [ ] 完善CLI命令的集成测试
- [ ] 优化依赖版本冲突问题
- [ ] 添加更多示例代码

## 🤝 贡献

请查看项目根目录的贡献指南。对于 kernel 相关的开发:

1. 确保测试位于 `tests/` 目录
2. 保持模块间的清晰边界
3. CLI 功能通过入口点而非直接导入使用
4. 遵循现有的代码风格和架构模式

---

🔗 **相关包**: [sage-utils](../sage-utils/) | [sage-extensions](../sage-extensions/) | [sage-lib](../sage-lib/)

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "intellistream-sage-kernel",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "data, reasoning, kernel, dataflow, llm, ml, framework, rag, intellistream, cli, ai, sage",
    "author": null,
    "author_email": "IntelliStream Team <intellistream@outlook.com>",
    "download_url": null,
    "platform": null,
    "description": "# SAGE Kernel\n\n> \ud83d\ude80 SAGE \u6846\u67b6\u7684\u6838\u5fc3\u5185\u6838\u5305 - \u6574\u5408\u4e86\u6838\u5fc3\u6846\u67b6\u548c\u547d\u4ee4\u884c\u5de5\u5177\n\n## \ud83d\udce6 \u5305\u542b\u5185\u5bb9\n\n**SAGE Kernel** \u662f SAGE \u6846\u67b6\u7684\u6838\u5fc3\u5305\uff0c\u6574\u5408\u4e86\u539f\u6765\u7684 `sage-kernel` \u548c `sage-cli` \u4e24\u4e2a\u5305\u7684\u529f\u80fd\uff1a\n\n### \ud83c\udfd7\ufe0f \u6838\u5fc3\u7ec4\u4ef6 (sage.core)\n- **\u6570\u636e\u6d41\u5904\u7406\u6846\u67b6**: \u9ad8\u6027\u80fd\u7684 dataflow-native \u5904\u7406\u5f15\u64ce\n- **\u51fd\u6570\u7ba1\u7406**: Function registry \u548c operator \u7ba1\u7406\n- **\u914d\u7f6e\u7cfb\u7edf**: \u7edf\u4e00\u7684\u914d\u7f6e\u7ba1\u7406\u548c\u9a8c\u8bc1\n\n### \u2699\ufe0f \u4efb\u52a1\u7ba1\u7406 (sage.kernels.jobmanager)  \n- **\u4efb\u52a1\u8c03\u5ea6**: \u5206\u5e03\u5f0f\u4efb\u52a1\u6267\u884c\u548c\u8c03\u5ea6\n- **\u6267\u884c\u56fe**: DAG \u6267\u884c\u56fe\u6784\u5efa\u548c\u4f18\u5316\n- **\u5ba2\u6237\u7aef\u63a5\u53e3**: JobManager \u5ba2\u6237\u7aef\u548c\u670d\u52a1\u7aef\n\n### \ud83d\udd27 \u8fd0\u884c\u65f6\u7cfb\u7edf (sage.kernels.runtime)\n- **\u670d\u52a1\u5de5\u5382**: \u4efb\u52a1\u548c\u670d\u52a1\u7684\u52a8\u6001\u521b\u5efa\n- **\u901a\u4fe1\u961f\u5217**: \u9ad8\u6027\u80fd\u7684\u8fdb\u7a0b\u95f4\u901a\u4fe1\n- **\u670d\u52a1\u7ba1\u7406**: \u5fae\u670d\u52a1\u67b6\u6784\u7684\u670d\u52a1\u751f\u547d\u5468\u671f\u7ba1\u7406\n\n### \ud83d\udcbb \u547d\u4ee4\u884c\u5de5\u5177 (sage.cli)\n- **\u96c6\u7fa4\u7ba1\u7406**: \u5206\u5e03\u5f0f\u96c6\u7fa4\u7684\u90e8\u7f72\u548c\u7ba1\u7406\n- **\u4efb\u52a1\u63d0\u4ea4**: \u547d\u4ee4\u884c\u4efb\u52a1\u63d0\u4ea4\u548c\u76d1\u63a7\n- **\u914d\u7f6e\u7ba1\u7406**: \u4ea4\u4e92\u5f0f\u914d\u7f6e\u8bbe\u7f6e\u548c\u9a8c\u8bc1\n- **\u6269\u5c55\u7ba1\u7406**: \u63d2\u4ef6\u548c\u6269\u5c55\u7684\u5b89\u88c5\u7ba1\u7406\n\n## \ud83d\ude80 \u5feb\u901f\u5f00\u59cb\n\n### \u5b89\u88c5\n\n```bash\n# \u4ece\u6e90\u7801\u5b89\u88c5\npip install -e packages/sage-kernel\n\n# \u6216\u8005\u4ece PyPI \u5b89\u88c5\uff08\u53d1\u5e03\u540e\uff09\npip install intellistream-sage-kernel\n```\n\n### \u4f7f\u7528\u6838\u5fc3API\n\n```python\nfrom sage.core import Function, Config\nfrom sage.kernels.jobmanager import JobManager\nfrom sage.kernels.runtime import ServiceTaskFactory\n\n# \u521b\u5efa\u5e76\u4f7f\u7528\u51fd\u6570\n@Function\ndef my_processor(data):\n    return data * 2\n\n# \u4f7f\u7528 JobManager\njob_manager = JobManager()\njob = job_manager.submit_job(my_processor, data=[1, 2, 3])\n```\n\n### \u4f7f\u7528\u547d\u4ee4\u884c\u5de5\u5177\n\n```bash\n# \u542f\u52a8 SAGE \u96c6\u7fa4\nsage cluster start\n\n# \u63d0\u4ea4\u4efb\u52a1\nsage job submit my_job.py\n\n# \u7ba1\u7406\u914d\u7f6e\nsage config set utils.provider openai\nsage config show\n\n# \u67e5\u770b\u5e2e\u52a9\nsage --help\n```\n\n## \ud83c\udfd7\ufe0f \u67b6\u6784\u8bbe\u8ba1\n\n```\nsage-kernel/\n\u251c\u2500\u2500 src/sage/\n\u2502   \u251c\u2500\u2500 core/           # \u6838\u5fc3\u6846\u67b6\n\u2502   \u251c\u2500\u2500 jobmanager/     # \u4efb\u52a1\u7ba1\u7406\n\u2502   \u251c\u2500\u2500 runtime/        # \u8fd0\u884c\u65f6\u7cfb\u7edf\n\u2502   \u2514\u2500\u2500 cli/            # \u547d\u4ee4\u884c\u5de5\u5177\n\u251c\u2500\u2500 tests/              # \u6807\u51c6\u5316\u6d4b\u8bd5\u7ed3\u6784\n\u2502   \u251c\u2500\u2500 core/\n\u2502   \u251c\u2500\u2500 jobmanager/\n\u2502   \u251c\u2500\u2500 runtime/\n\u2502   \u2514\u2500\u2500 cli/\n\u2514\u2500\u2500 pyproject.toml      # \u7edf\u4e00\u914d\u7f6e\n```\n\n## \ud83e\uddea \u6d4b\u8bd5\n\n```bash\n# \u8fd0\u884c\u6240\u6709\u6d4b\u8bd5\npytest\n\n# \u8fd0\u884c\u7279\u5b9a\u6a21\u5757\u6d4b\u8bd5\npytest tests/core/\npytest tests/cli/\n\n# \u8fd0\u884c\u8986\u76d6\u7387\u6d4b\u8bd5\npytest --cov=sage --cov-report=html\n```\n\n## \ud83d\udd27 \u5f00\u53d1\u73af\u5883\n\n```bash\n# \u5b89\u88c5\u5f00\u53d1\u4f9d\u8d56\npip install -e \"packages/sage-kernel[dev]\"\n\n# \u5b89\u88c5\u589e\u5f3aCLI\u529f\u80fd\npip install -e \"packages/sage-kernel[enhanced]\"\n\n# \u4ee3\u7801\u683c\u5f0f\u5316\nblack src/ tests/\nruff check src/ tests/\n\n# \u7c7b\u578b\u68c0\u67e5\nmypy src/sage\n```\n\n## \ud83d\udcda \u4f9d\u8d56\u5173\u7cfb\n\n### \u5185\u90e8\u4f9d\u8d56\n- `sage-utils`: \u57fa\u7840\u5de5\u5177\u5305\n\n### \u5916\u90e8\u6838\u5fc3\u4f9d\u8d56\n- **ML/AI**: torch, transformers, sentence-transformers, faiss-cpu\n- **Web/API**: fastapi, uvicorn, aiohttp\n- **\u6570\u636e\u5904\u7406**: numpy, pandas, scipy, scikit-learn\n- **CLI**: typer, rich, click, questionary\n- **\u914d\u7f6e**: pydantic, PyYAML, python-dotenv\n\n## \ud83c\udfaf \u8bbe\u8ba1\u7406\u5ff5\n\n### \u5355\u4e00\u5185\u6838\u539f\u5219\n\u5c06\u6838\u5fc3\u6846\u67b6\u548c CLI \u5de5\u5177\u5408\u5e76\u5230\u4e00\u4e2a\u5305\u4e2d\uff0c\u9075\u5faa\u4ee5\u4e0b\u539f\u5219\uff1a\n\n1. **\u7edf\u4e00\u5165\u53e3**: \u6240\u6709\u6838\u5fc3\u529f\u80fd\u901a\u8fc7\u4e00\u4e2a\u5305\u63d0\u4f9b\n2. **\u903b\u8f91\u5206\u79bb**: \u4e0d\u540c\u7ec4\u4ef6\u4fdd\u6301\u6e05\u6670\u7684\u6a21\u5757\u8fb9\u754c  \n3. **\u4f9d\u8d56\u4f18\u5316**: \u907f\u514d\u5faa\u73af\u4f9d\u8d56\uff0c\u6e05\u6670\u7684\u4f9d\u8d56\u5c42\u6b21\n4. **\u6d4b\u8bd5\u6807\u51c6\u5316**: \u6240\u6709\u6d4b\u8bd5\u6587\u4ef6\u4f4d\u4e8e\u6807\u51c6 `tests/` \u76ee\u5f55\n\n### CLI \u96c6\u6210\u7b56\u7565\n- CLI \u529f\u80fd\u5b8c\u5168\u96c6\u6210\u5230\u5185\u6838\u5305\u4e2d\n- \u901a\u8fc7\u5165\u53e3\u70b9 `sage` \u548c `sage-kernel` \u63d0\u4f9b\u547d\u4ee4\u884c\u8bbf\u95ee\n- CLI \u6a21\u5757\u4e0d\u6c61\u67d3\u6838\u5fc3 API \u7684\u5bfc\u5165\n\n## \ud83d\udd04 \u4ece\u65e7\u5305\u8fc1\u79fb\n\n\u5982\u679c\u4f60\u4e4b\u524d\u4f7f\u7528 `sage-kernel` \u6216 `sage-cli`\uff1a\n\n```python\n# \u65e7\u4ee3\u7801\nfrom sage_core import Function\nfrom sage_cli.main import app\n\n# \u65b0\u4ee3\u7801  \nfrom sage.core import Function\n# CLI \u901a\u8fc7\u547d\u4ee4\u884c\u4f7f\u7528: sage command\n```\n\n## \ud83d\udccb TODO\n\n- [ ] \u5b8c\u5584\u6a21\u5757\u95f4\u7684\u5bfc\u5165\u4f18\u5316\n- [ ] \u6dfb\u52a0\u6027\u80fd\u57fa\u51c6\u6d4b\u8bd5\n- [ ] \u5b8c\u5584CLI\u547d\u4ee4\u7684\u96c6\u6210\u6d4b\u8bd5\n- [ ] \u4f18\u5316\u4f9d\u8d56\u7248\u672c\u51b2\u7a81\u95ee\u9898\n- [ ] \u6dfb\u52a0\u66f4\u591a\u793a\u4f8b\u4ee3\u7801\n\n## \ud83e\udd1d \u8d21\u732e\n\n\u8bf7\u67e5\u770b\u9879\u76ee\u6839\u76ee\u5f55\u7684\u8d21\u732e\u6307\u5357\u3002\u5bf9\u4e8e kernel \u76f8\u5173\u7684\u5f00\u53d1\uff1a\n\n1. \u786e\u4fdd\u6d4b\u8bd5\u4f4d\u4e8e `tests/` \u76ee\u5f55\n2. \u4fdd\u6301\u6a21\u5757\u95f4\u7684\u6e05\u6670\u8fb9\u754c\n3. CLI \u529f\u80fd\u901a\u8fc7\u5165\u53e3\u70b9\u800c\u975e\u76f4\u63a5\u5bfc\u5165\u4f7f\u7528\n4. \u9075\u5faa\u73b0\u6709\u7684\u4ee3\u7801\u98ce\u683c\u548c\u67b6\u6784\u6a21\u5f0f\n\n---\n\n\ud83d\udd17 **\u76f8\u5173\u5305**: [sage-utils](../sage-utils/) | [sage-extensions](../sage-extensions/) | [sage-lib](../sage-lib/)\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "SAGE Framework - \u7edf\u4e00\u5185\u6838 (Core + Runtime + Utils + CLI)",
    "version": "0.1.6",
    "project_urls": {
        "Documentation": "https://intellistream.github.io/SAGE-Pub/",
        "Homepage": "https://github.com/intellistream/SAGE",
        "Issues": "https://github.com/intellistream/SAGE/issues",
        "Repository": "https://github.com/intellistream/SAGE.git"
    },
    "split_keywords": [
        "data",
        " reasoning",
        " kernel",
        " dataflow",
        " llm",
        " ml",
        " framework",
        " rag",
        " intellistream",
        " cli",
        " ai",
        " sage"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d778ededb04309306b3b586ec09d713995d2f956364d0d2601da66a6faec754d",
                "md5": "8ba75f53e5fa0dde5d9648c953a62021",
                "sha256": "e89db76066398c5f09f82e15c9a54d5bdfca9ea8d1f7582f7694a040ef10f044"
            },
            "downloads": -1,
            "filename": "intellistream_sage_kernel-0.1.6-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "8ba75f53e5fa0dde5d9648c953a62021",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 962266,
            "upload_time": "2025-08-08T14:25:24",
            "upload_time_iso_8601": "2025-08-08T14:25:24.324084Z",
            "url": "https://files.pythonhosted.org/packages/d7/78/ededb04309306b3b586ec09d713995d2f956364d0d2601da66a6faec754d/intellistream_sage_kernel-0.1.6-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-08 14:25:24",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "intellistream",
    "github_project": "SAGE",
    "github_not_found": true,
    "lcname": "intellistream-sage-kernel"
}
        
Elapsed time: 0.93581s