Skip to content

operrouter/operrouter-core-sdk

Repository files navigation

OperRouter Core SDK

🚀 智能算子依赖抽象层 - 为算子提供统一的数据源、LLM、HTTP、gRPC 访问能力

📦 架构设计

operrouter-core-sdk/
├── datasource-sdk/     # 数据源抽象 (MySQL, PostgreSQL, Kafka, Redis)
├── llm-sdk/            # LLM 抽象 (OpenAI, Ollama, Anthropic)
├── http-sdk/           # HTTP 客户端抽象
├── grpc-sdk/           # gRPC 客户端抽象
└── operator-core-sdk/  # 核心依赖注入与生命周期管理

🎯 核心功能

1. 统一数据源访问

  • 支持多种数据库:MySQL, PostgreSQL, MongoDB
  • 支持消息队列:Kafka
  • 支持缓存:Redis
  • 统一的 connect, query, insert, stream 接口

2. LLM 提供商抽象

  • OpenAI (GPT-3.5, GPT-4)
  • Ollama (本地模型)
  • Anthropic Claude
  • 统一的 generate, chat, embedding 接口

3. HTTP/gRPC 客户端

  • 自动重试策略
  • 认证管理
  • 连接池优化
  • 服务发现支持

4. 依赖注入与配置

  • 基于 TOML 的声明式配置
  • 自动依赖解析与注入
  • 生命周期管理

🔧 快速开始

创建算子配置文件

# operator.toml
[metadata]
name = "my-intelligent-operator"
version = "0.1.0"

[dependencies.datasource]
sdk = "datasource-sdk"
version = "0.1"

[dependencies.llm]
sdk = "llm-sdk"
version = "0.1"

[inject.datasource]
type = "mysql"
url = "mysql://user:password@localhost:3306/mydb"

[inject.llm]
provider = "openai"
api_key = "sk-..."
model = "gpt-4"

在算子中使用

use operator_core_sdk::Injector;
use anyhow::Result;

#[tokio::main]
async fn main() -> Result<()> {
    // 从配置文件初始化依赖注入器
    let injector = Injector::from_file("operator.toml").await?;
    
    // 获取数据源客户端
    let datasource = injector.datasource()?;
    let rows = datasource.query("SELECT * FROM users").await?;
    
    // 获取 LLM 客户端
    let llm = injector.llm()?;
    let response = llm.chat("Analyze this data").await?;
    
    Ok(())
}

🌍 多语言支持

FFI 桥接 (Python, Go)

from operrouter_sdk import Injector

injector = Injector.from_file("operator.toml")
llm = injector.llm()
result = llm.chat("Hello")

gRPC 服务模式

SDK 可作为 gRPC 服务运行,供任意语言调用:

cargo run --bin operrouter-grpc-server

📚 模块说明

SDK 功能 状态
datasource-sdk 数据源统一接口 ✅ 实现中
llm-sdk LLM 提供商抽象 ✅ 实现中
http-sdk HTTP 客户端 ✅ 实现中
grpc-sdk gRPC 客户端 ✅ 实现中
operator-core-sdk 核心依赖注入 ✅ 实现中

🛠 开发

# 构建所有模块
cargo build --workspace

# 运行测试
cargo test --workspace

# 运行示例
cargo run --example demo-operator

📄 许可证

MIT OR Apache-2.0

About

No description, website, or topics provided.

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published