Skip to main content

A Python SDK for interacting with the Model Manager gRPC service

Project description

Model Manager Client

这是一个用于与 Model Manager gRPC 服务进行交互的 Python SDK。该客户端库提供了简单易用的接口来管理和操作模型。

功能特点

  • 基于 gRPC 的高性能通信
  • 类型安全的数据模型(使用 Pydantic)
  • 完整的异常处理
  • 简单易用的 API 接口

系统要求

  • Python 3.8 或更高版本
  • 支持的操作系统:跨平台(Windows、Linux、macOS)

安装

你可以通过 pip 安装此包:

pip install model-manager-client

项目结构

├── model_manager_client/
│   ├── generated/          # gRPC 生成的代码
│   ├── schemas/            # 数据模型定义
│   ├── enums/              # 枚举类型定义
│   ├── client.py           # 主要客户端实现
│   ├── exceptions.py       # 自定义异常
│   └── __init__.py

使用方法

基本设置

from model_manager_client import ModelManagerClient

# 创建客户端实例
client = ModelManagerClient(
    server_address="localhost:50051",  # 服务器地址
    jwt_token="your-jwt-token"  # 可选的 JWT 认证令牌
)

流式调用示例

import asyncio


async def invoke_example():
    from model_manager_client import ModelManagerClient
    from model_manager_client.schemas import ModelRequest, TextInput, UserContext
    from model_manager_client.enums.providers import ProviderType

    # 实例化客户端
    client = ModelManagerClient()

    # 组装请求参数
    request_data = ModelRequest(
        model_provider=ProviderType.OPENAI,  # 选择模型提供商
        input=[
            TextInput(text="你好,请介绍一下你自己。")
        ],
        user_context=UserContext(user_id="testllm", org_id="testllm"),
        stream=True,
    )

    # 发送请求并获取响应
    async for response in client.invoke(request_data):
        if response.error:
            print(f"错误: {response.error}")
        else:
            print(f"响应: {response.content}")
            if response.usage:
                print(f"Token 使用情况: {response.usage}")


# 运行示例
asyncio.run(invoke_example())

非流式调用示例

import asyncio


async def non_stream_example():
    from model_manager_client import ModelManagerClient
    from model_manager_client.schemas import ModelRequest, TextInput, UserContext
    from model_manager_client.enums.providers import ProviderType

    # 实例化客户端
    client = ModelManagerClient()

    # 组装请求参数
    request_data = ModelRequest(
        model_provider=ProviderType.OPENAI,  # 选择模型提供商
        input=[
            TextInput(text="你好,请介绍一下你自己。")
        ],
        user_context=UserContext(user_id="testllm", org_id="testllm"),
        stream=False,  # 设置为非流式调用
    )

    # 发送请求并获取响应
    response = await client.invoke(request_data)
    if response.error:
        print(f"错误: {response.error}")
    else:
        print(f"响应: {response.content}")
        if response.usage:
            print(f"Token 使用情况: {response.usage}")


# 运行示例
asyncio.run(non_stream_example())

环境变量配置

你也可以通过环境变量来配置客户端:

export MODEL_MANAGER_SERVER_ADDRESS="localhost:50051"
export MODEL_MANAGER_SERVER_JWT_TOKEN="your-jwt-token"

然后创建客户端时可以不传参数:

from model_manager_client import ModelManagerClient

client = ModelManagerClient()  # 将使用环境变量中的配置

开发

环境设置

  1. 创建虚拟环境:
python -m venv .venv
source .venv/bin/activate  # Linux/macOS
# 或
.venv\Scripts\activate  # Windows
  1. 安装开发依赖:
pip install -e .

生成 gRPC 代码

运行以下命令生成 gRPC 相关代码:

python make_grpc.py

许可证

MIT License

作者

贡献

欢迎提交 Issue 和 Pull Request!

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

model_manager_client-0.1.3.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

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

model_manager_client-0.1.3-py3-none-any.whl (11.9 kB view details)

Uploaded Python 3

File details

Details for the file model_manager_client-0.1.3.tar.gz.

File metadata

  • Download URL: model_manager_client-0.1.3.tar.gz
  • Upload date:
  • Size: 11.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for model_manager_client-0.1.3.tar.gz
Algorithm Hash digest
SHA256 51e36ffe26229f88fa4c99628fda8710b976625cfd70a56cd110bd321eab75f6
MD5 486d22a46f1ba2192d96c4386c893cb8
BLAKE2b-256 c2d5964bb1a89f11b6aebe728e43d70f3ce67fca0d7a1633e2939ef4d848503d

See more details on using hashes here.

File details

Details for the file model_manager_client-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for model_manager_client-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 864c7b4f96b6b3d2787d58157c22fc002357225d0d13a70ded94b019d16b61f9
MD5 7688bcec9a66984e1069a6168d9ff26e
BLAKE2b-256 e8eb3a4136aad653957e818f8eed9dc7346f2b17b451b89d5a487ccced5aa57a

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