0G计算网络SDK
通过0G计算网络访问分散的人工智能计算——这是一个GPU市场,将开发人员与负担得起的人工智能推理和微调服务联系起来。
功能
- 人工智能推理:运行llm、文本到图像和语音到文本模型
- 微调:使用您自己的数据定制模型
- OpenAI兼容:与现有的OpenAI SDK客户端一起工作
- Web UI:内置接口,方便服务发现和测试
- CLI工具:用于自动化的命令行接口
要求
- Node.js >= 22.0.0
- 一个装有0G代币的钱包
安装
# 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
快速入门
Web UI
最快的入门方法:
# Launch the Web UI
0g-compute-cli ui start-web
开放 http://localhost:3090 在浏览器中:
- 连接您的钱包(MetaMask)
- 浏览可用的人工智能服务
- 直接与AI模型聊天
- 获取集成代码示例
命令行界面
# 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!" }]
})
});
直接访问API
在得到一个秘密之后 0g-compute-cli inference get-secret,使用任何兼容openai的客户端:
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!' }]
});
账户管理
0G计算网络使用两层帐户系统:
- 主要帐户你把钱包里的钱存进去
- 子账户:用于支付服务的特定于提供商的帐户
# 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
微调
使用您自己的数据定制AI模型:
# 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
提供商控制器(适用于服务提供商)
服务提供商可以使用控制器CLI远程管理其部署的容器和配置。
设置
# Reset saved endpoint configuration
0g-compute-cli controller reset-controller-endpoint
容器管理
# 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
配置管理
控制器管理三种类型的配置:
| 类型 | 描述 | 格式 |
|---|---|---|
core | 代理+事件共享配置 | YAML |
ingress | Nginx入口环境变量 | JSON |
prometheus | 普罗米修斯监控配置 | YAML(自动base64编码) |
# 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
行政及安全管理
# 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
图像管理
# View current image info
0g-compute-cli controller image-info
# Pull latest image and recreate broker+event containers
0g-compute-cli controller update-images
网络配置
| 网络 | RPC端点 |
|---|---|
| Testnet | https://evmrpc-testnet.0g.ai |
| Mainnet | https://evmrpc.0g.ai |
浏览器的使用
对于浏览器环境,你需要为Node.js内置模块填充多边形:
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 }
})
]
};
故障排除
余额不足
# 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
未确认提供商
0g-compute-cli inference acknowledge-provider --provider <PROVIDER_ADDRESS>
Web界面端口冲突
0g-compute-cli ui start-web --port 3091