0g-serving-broker

中文文档
0.7.2发布于 2026/02/14ISCTypeScriptESM + CJS

TS SDK for 0G Compute Network

原始使用文档
文档目录23 节
  1. Features
  2. Requirements
  3. Installation
  4. Quick Start
  5. Web UI
  6. CLI
  7. SDK
  8. Direct API Access
  9. Account Management
  10. Fine-tuning
  11. Provider Controller (For Service Providers)
  12. Setup
  13. Container Management
  14. Configuration Management
  15. Admin & Security Management
  16. Image Management
  17. Network Configuration
  18. Browser Usage
  19. Troubleshooting
  20. Insufficient Balance
  21. Provider Not Acknowledged
  22. Web UI Port Conflict
  23. Documentation

0G Compute Network SDK

Access decentralized AI computing through the 0G Compute Network - a GPU marketplace that connects developers with affordable AI inference and fine-tuning services.

Features

  • AI Inference: Run LLMs, text-to-image, and speech-to-text models
  • Fine-tuning: Customize models with your own data
  • OpenAI Compatible: Works with existing OpenAI SDK clients
  • Web UI: Built-in interface for easy service discovery and testing
  • CLI Tools: Command-line interface for automation

Requirements

  • Node.js >= 22.0.0
  • A wallet with 0G tokens

Installation

# Using pnpm (recommended)
pnpm add @0glabs/0g-serving-broker

# Using npm
npm install @0glabs/0g-serving-broker

# Using yarn
yarn add @0glabs/0g-serving-broker

# Install globally for CLI access
pnpm add @0glabs/0g-serving-broker -g

Quick Start

Web UI

The fastest way to get started:

# Launch the Web UI
0g-compute-cli ui start-web

Open http://localhost:3090 in your browser to:

  • Connect your wallet (MetaMask)
  • Browse available AI services
  • Chat with AI models directly
  • Get integration code examples

CLI

# Setup network
0g-compute-cli setup-network

# Login with your wallet
0g-compute-cli login

# Deposit funds
0g-compute-cli deposit --amount 10

# List available providers
0g-compute-cli inference list-providers

# Transfer funds to a provider
0g-compute-cli transfer-fund --provider <PROVIDER_ADDRESS> --amount 5

# Acknowledge provider before use
0g-compute-cli inference acknowledge-provider --provider <PROVIDER_ADDRESS>

# Get API secret for direct access
0g-compute-cli inference get-secret --provider <PROVIDER_ADDRESS>

# Generate API key with a specific token ID (0-254)
0g-compute-cli inference get-secret --provider <PROVIDER_ADDRESS> --token-id 5

SDK

import { ethers } from "ethers";
import { createZGComputeNetworkBroker } from "@0glabs/0g-serving-broker";

// Initialize
const provider = new ethers.JsonRpcProvider("https://evmrpc-testnet.0g.ai");
const wallet = new ethers.Wallet(process.env.PRIVATE_KEY!, provider);
const broker = await createZGComputeNetworkBroker(wallet);

// Discover services
const services = await broker.inference.listService();

// Fund your account
await broker.ledger.depositFund(10);

// Acknowledge provider
await broker.inference.acknowledgeProviderSigner(providerAddress);

// Get service metadata
const { endpoint, model } = await broker.inference.getServiceMetadata(providerAddress);

// Generate auth headers
const headers = await broker.inference.getRequestHeaders(providerAddress);

// Make request (OpenAI compatible)
const response = await fetch(`${endpoint}/chat/completions`, {
  method: "POST",
  headers: { "Content-Type": "application/json", ...headers },
  body: JSON.stringify({
    model,
    messages: [{ role: "user", content: "Hello!" }]
  })
});

Direct API Access

After obtaining a secret with 0g-compute-cli inference get-secret, use any OpenAI-compatible client:

import OpenAI from 'openai';

const client = new OpenAI({
  baseURL: `${serviceUrl}/v1/proxy`,
  apiKey: 'app-sk-<YOUR_SECRET>'
});

const completion = await client.chat.completions.create({
  model: 'model-name',
  messages: [{ role: 'user', content: 'Hello!' }]
});

Account Management

The 0G Compute Network uses a two-tier account system:

  • Main Account: Where you deposit funds from your wallet
  • Sub-Accounts: Provider-specific accounts for service payments
# Check account balance
0g-compute-cli get-account

# Deposit to main account
0g-compute-cli deposit --amount 10

# Transfer to provider sub-account
0g-compute-cli transfer-fund --provider <PROVIDER_ADDRESS> --amount 5

# Request refund from sub-accounts (24-hour lock period)
0g-compute-cli retrieve-fund

# Withdraw to wallet
0g-compute-cli refund --amount 5

Fine-tuning

Customize AI models with your own data:

# List available providers
0g-compute-cli fine-tuning list-providers

# List available models
0g-compute-cli fine-tuning list-models

# Upload your dataset
0g-compute-cli fine-tuning upload --data-path ./my-dataset

# Create fine-tuning task
0g-compute-cli fine-tuning create-task \
  --provider <PROVIDER_ADDRESS> \
  --model distilbert-base-uncased \
  --dataset <DATASET_ROOT_HASH> \
  --config-path ./config.json \
  --data-size <SIZE>

# Monitor progress
0g-compute-cli fine-tuning get-task --provider <PROVIDER_ADDRESS> --task <TASK_ID>

# Download and decrypt result
0g-compute-cli fine-tuning acknowledge-model --provider <PROVIDER_ADDRESS> --task-id <TASK_ID> --data-path ./model
0g-compute-cli fine-tuning decrypt-model --provider <PROVIDER_ADDRESS> --task-id <TASK_ID> --encrypted-model ./model --output ./model.zip

Provider Controller (For Service Providers)

Service providers can manage their deployed containers and configurations remotely using the controller CLI.

Setup

# Reset saved endpoint configuration
0g-compute-cli controller reset-controller-endpoint

Container Management

# View all container status
0g-compute-cli controller status

# Start/stop/restart specific containers
0g-compute-cli controller start --container broker
0g-compute-cli controller stop --container event
0g-compute-cli controller restart --container ingress

# Available containers: broker, event, ingress, prometheus-init, prometheus

Configuration Management

The controller manages three types of configurations:

TypeDescriptionFormat
coreBroker + Event shared configYAML
ingressNginx ingress environment variablesJSON
prometheusPrometheus monitoring configYAML (auto base64 encoded)
# Get configuration
0g-compute-cli controller get-config --type core --output config.yaml
0g-compute-cli controller get-config --type ingress
0g-compute-cli controller get-config --type prometheus --decode  # decode base64

# Update configuration
# core: updates config AND restarts broker+event
0g-compute-cli controller update-config --type core --config config.yaml

# ingress: provide JSON file with env vars
# Example env.json: {"DOMAIN": "example.com", "PORT": "443"}
0g-compute-cli controller update-config --type ingress --config env.json

# prometheus: provide YAML file (auto base64 encoded)
0g-compute-cli controller update-config --type prometheus --config prometheus.yml

Admin & Security Management

# Manage admin wallet whitelist
0g-compute-cli controller list-admins
0g-compute-cli controller add-admin --address 0x...
0g-compute-cli controller remove-admin --address 0x...

# Manage IP whitelist
0g-compute-cli controller list-ips
0g-compute-cli controller add-ip --ip 192.168.1.100
0g-compute-cli controller add-ip --ip 10.0.0.0/8  # CIDR supported
0g-compute-cli controller remove-ip --ip 192.168.1.100

Image Management

# View current image info
0g-compute-cli controller image-info

# Pull latest image and recreate broker+event containers
0g-compute-cli controller update-images

Network Configuration

NetworkRPC Endpoint
Testnethttps://evmrpc-testnet.0g.ai
Mainnethttps://evmrpc.0g.ai

Browser Usage

For browser environments, you'll need polyfills for Node.js built-in modules:

pnpm add -D vite-plugin-node-polyfills
// vite.config.js
import { nodePolyfills } from 'vite-plugin-node-polyfills';

export default {
  plugins: [
    nodePolyfills({
      include: ['crypto', 'stream', 'util', 'buffer', 'process'],
      globals: { Buffer: true, global: true, process: true }
    })
  ]
};

Troubleshooting

Insufficient Balance

# Check which account needs funds
0g-compute-cli get-account

# Deposit to main account
0g-compute-cli deposit --amount 10

# Transfer to provider
0g-compute-cli transfer-fund --provider <ADDRESS> --amount 5

Provider Not Acknowledged

0g-compute-cli inference acknowledge-provider --provider <PROVIDER_ADDRESS>

Web UI Port Conflict

0g-compute-cli ui start-web --port 3091

Documentation

版本与发布记录

0g-serving-broker 共发布 18 个版本,首次发布于 2024/11/26;过去 12 个月发布了 6 个版本。

版本发布日期距今
0.7.2latest2026/02/148 个月前
0.7.12026/02/148 个月前
0.7.02026/02/148 个月前
1.0.0-beta.32025/11/1111 个月前
1.0.0-beta.22025/11/1111 个月前
1.0.0-beta2025/11/1011 个月前

关于 0g-serving-broker 的常见问题

0g-serving-broker 是什么?

用于0G计算网络的TS SDK

如何安装 0g-serving-broker?

在项目目录运行 npm install 0g-serving-broker,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@types/circomlibjs(^0.1.6)、@types/crypto-js(^4.2.2)、circomlibjs(^0.1.6)、crypto-js(^4.2.0)、ethers(6.13.1)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。它还提供命令行工具 0g-compute-cli,可以用 npx 0g-compute-cli 直接运行。

0g-serving-broker 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

0g-serving-broker 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

0g-serving-broker 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

0g-serving-broker 可以商用吗?

0g-serving-broker 使用 ISC 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

0g-serving-broker 还在维护吗?

最新版本 0.7.2 发布于 2026/02/14(8 个月前);至今共发布 18 个版本,其中过去 12 个月发布了 6 个;首次发布于 2024/11/26。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。