MrKop One API
使用文档返回首页
SDK 文档MCP 集成

MrKop One API v0.26.5

SDK 文档

MrKop One API 提供 Python / Go / Node.js 三种官方 SDK,覆盖全部 AI API 和完整的企业管理 API。

下载 SDK

语言 包管理器安装 源码压缩包 源码仓库 最低版本
Python pip install mrkop-one-api mrkop-python-sdk-v0.2.0.tar.gz Gitee Python 3.9+
Go go get github.com/mrkop/mr-kop-one-api/sdks/go/mrkop mrkop-go-sdk-v0.2.0.tar.gz Gitee Go 1.22+
Node.js / TypeScript npm install mrkop-one-api mrkop-node-sdk-v0.2.0.tar.gz Gitee Node.js 18+

源码压缩包托管在 MrKop CDN,通过 ESA 边缘节点加速下载。也可从 Gitee 直接 Clone 源码。

认证方式

SDK 支持双认证模式,自动根据端点类型选择:

端点类型 认证方式 说明
AI 端点 (/v1/chat/*, /v1/embeddings 等) API Key 构造客户端时传入 api_key
管理端点 (/v1/admin/, /v1/enterprise/, /api/*) JWT Bearer Token 调用 login() 获取,7 天有效

AI API 快速开始

Python

python
from mrkop_one_api import MrKopClient

client = MrKopClient(api_key="mrkop-xxxx")

# 聊天补全
resp = client.chat_completions(
    model="kimi-for-coding",
    messages=[{"role": "user", "content": "用 Python 写一个快速排序"}]
)
print(resp["choices"][0]["message"]["content"])

# 流式聊天
for event in client.chat_completions(
    model="kimi-for-coding",
    messages=[{"role": "user", "content": "讲个笑话"}],
    stream=True
):
    delta = event["choices"][0].get("delta", {})
    if "content" in delta:
        print(delta["content"], end="", flush=True)

# 嵌入
resp = client.embeddings(
    model="text-embedding-3-small",
    input="Hello world"
)
print(resp["data"][0]["embedding"][:5])

# 模型列表
models = client.models()
for m in models["data"]:
    print(m["id"])

Go

go
package main

import (
    "context"
    "fmt"
    "github.com/mrkop/mr-kop-one-api/sdks/go/mrkop"
)

func main() {
    client := mrkop.NewClient(mrkop.WithAPIKey("mrkop-xxxx"))

    // 聊天补全
    resp, err := client.ChatCompletions(context.Background(), &mrkop.ChatRequest{
        Model: "kimi-for-coding",
        Messages: []mrkop.ChatMessage{
            {Role: "user", Content: "用 Go 写一个快速排序"},
        },
    })
    if err != nil {
        panic(err)
    }
    fmt.Println(resp.Choices[0].Message.Content)

    // 流式
    events, errs := client.ChatCompletionsStream(context.Background(), &mrkop.ChatRequest{
        Model: "kimi-for-coding",
        Messages: []mrkop.ChatMessage{
            {Role: "user", Content: "讲个笑话"},
        },
    })
    for {
        select {
        case ev, ok := <-events:
            if !ok { return }
            if ev.Choices[0].Delta != nil {
                fmt.Print(ev.Choices[0].Delta.Content)
            }
        case err := <-errs:
            panic(err)
        }
    }
}

Node.js

typescript
import { MrKopClient } from "mrkop-one-api";

const client = new MrKopClient({ apiKey: "mrkop-xxxx" });

// 聊天补全
const resp = await client.chatCompletions({
  model: "kimi-for-coding",
  messages: [{ role: "user", content: "用 TypeScript 写一个快速排序" }],
});
console.log(resp.choices[0].message.content);

// 流式
for await (const ev of client.chatCompletionsStream({
  model: "kimi-for-coding",
  messages: [{ role: "user", content: "讲个笑话" }],
})) {
  const delta = ev.choices[0]?.delta;
  if (delta?.content) process.stdout.write(delta.content);
}

// 嵌入
const embResp = await client.embeddings({
  model: "text-embedding-3-small",
  input: "Hello world",
});
console.log(embResp.data[0].embedding.slice(0, 5));

企业管理 API

SDK 内置完整的企业管理能力,涵盖人员目录、统计日志、密钥管理、钱包充值等 40+ 方法。

Python 管理示例

python
# 登录
client.login(phone="13800138000", password="your-password")

# 企业人员目录
members = client.enterprise.list_members("enterprise-id", page=1, limit=20)

# 创建企业密钥
new_key = client.enterprise.create_key("enterprise-id", name="生产密钥", monthly_budget=1000000)

# 管理统计
stats = client.admin.dashboard_stats(period="7d")
logs = client.admin.recent_logs(page=1, limit=50)

# 企业钱包
wallet = client.enterprise.wallet("enterprise-id")

# 邀请成员
client.admin.invite_enterprise_member("enterprise-id", email="dev@company.com", role="employee")

# 退出
client.logout()

Go 管理示例

go
// 登录
loginResp, _ := client.Login(ctx, "13800138000", "password")

// 企业人员目录
members, _ := client.Enterprise.ListMembers(ctx, "enterprise-id", 1, 20)

// 创建企业密钥
newKey, _ := client.Enterprise.CreateKey(ctx, "enterprise-id", "生产密钥", 1000000, 80)

// 统计日志
stats, _ := client.Admin.DashboardStats(ctx, "7d")
logs, _ := client.Admin.RecentLogs(ctx, 1, 50, "", "", "", "")

// 退出
client.Logout()

Node.js 管理示例

typescript
// 登录
await client.login("13800138000", "your-password");

// 企业人员目录
const members = await client.enterprise.listMembers("enterprise-id", 1, 20);

// 创建企业密钥
const newKey = await client.enterprise.createKey("enterprise-id", "生产密钥", 1000000);

// 统计日志
const stats = await client.admin.dashboardStats("7d");
const logs = await client.admin.recentLogs(1, 50);

// 退出
client.logout();

AI API 方法对照

API 端点 Python Go Node.js
聊天补全 POST /v1/chat/completions chat_completions() ChatCompletions() chatCompletions()
流式聊天 POST /v1/chat/completions chat_completions(stream=True) ChatCompletionsStream() chatCompletionsStream()
Anthropic Messages POST /v1/messages messages() Messages() messages()
嵌入 POST /v1/embeddings embeddings() Embeddings() embeddings()
重排序 POST /v1/rerank rerank() Rerank() rerank()
图像生成 POST /v1/images/generations images_generations() ImageGenerations() imageGenerations()
视频生成 POST /v1/video/generations video_generations() VideoGenerations() videoGenerations()
模型列表 GET /v1/models models() ListModels() listModels()
健康检查 GET /health health() Health() health()

管理 API 方法对照

Admin 命名空间(平台管理)

功能 Python Go Node.js
仪表盘统计admin.dashboard_stats(period)Admin.DashboardStats(ctx, period)admin.dashboardStats(period)
用量统计admin.usage_stats(period)Admin.UsageStats(ctx, period)admin.usageStats(period)
Key 统计admin.key_stats()Admin.KeyStats(ctx)admin.keyStats()
中继性能admin.relay_stats()Admin.RelayStats(ctx)admin.relayStats()
请求日志admin.recent_logs(page, limit)Admin.RecentLogs(ctx, ...)admin.recentLogs(page, limit)
日志详情admin.log_detail(log_id)Admin.LogDetail(ctx, id)admin.logDetail(logId)
用户列表admin.list_users()Admin.ListUsers(ctx)admin.listUsers()
企业列表admin.list_enterprises(page, limit)Admin.ListEnterprises(ctx, page, limit)admin.listEnterprises(page, limit)
企业详情admin.get_enterprise(id)Admin.GetEnterprise(ctx, id)admin.getEnterprise(id)
创建企业admin.create_enterprise(data)Admin.CreateEnterprise(ctx, data)admin.createEnterprise(data)
企业成员admin.list_enterprise_users(id, ...)Admin.ListEnterpriseUsers(ctx, ...)admin.listEnterpriseUsers(id, ...)
邀请成员admin.invite_enterprise_member(id, email, role)Admin.InviteEnterpriseMember(ctx, ...)admin.inviteEnterpriseMember(id, ...)
修改成员admin.update_enterprise_member(id, uid, data)Admin.UpdateEnterpriseMember(ctx, ...)admin.updateEnterpriseMember(id, ...)
移除成员admin.remove_enterprise_member(id, uid)Admin.RemoveEnterpriseMember(ctx, ...)admin.removeEnterpriseMember(id, uid)
企业钱包admin.get_enterprise_wallet(id)Admin.GetEnterpriseWallet(ctx, id)admin.getEnterpriseWallet(id)
钱包充值admin.top_up_enterprise_wallet(id, amount)Admin.TopUpEnterpriseWallet(ctx, ...)admin.topUpEnterpriseWallet(id, ...)
部门树admin.list_departments(id)Admin.ListDepartments(ctx, id)admin.listDepartments(id)
创建部门admin.create_department(id, name)Admin.CreateDepartment(ctx, ...)admin.createDepartment(id, ...)
加入申请admin.list_join_requests(id)Admin.ListJoinRequests(ctx, ...)admin.listJoinRequests(id)
批准加入admin.approve_join_request(id, req)Admin.ApproveJoinRequest(ctx, ...)admin.approveJoinRequest(id, ...)

Enterprise 命名空间(企业自管理)

功能 Python Go Node.js
我的企业enterprise.my()Enterprise.My(ctx)enterprise.my()
企业成员enterprise.list_members(id, ...)Enterprise.ListMembers(ctx, ...)enterprise.listMembers(id, ...)
邀请成员enterprise.invite_member(id, email, role)Enterprise.InviteMember(ctx, ...)enterprise.inviteMember(id, ...)
修改成员enterprise.update_member(id, uid, data)Enterprise.UpdateMember(ctx, ...)enterprise.updateMember(id, ...)
移除成员enterprise.remove_member(id, uid)Enterprise.RemoveMember(ctx, ...)enterprise.removeMember(id, uid)
密钥列表enterprise.list_keys(id)Enterprise.ListKeys(ctx, id)enterprise.listKeys(id)
创建密钥enterprise.create_key(id, name, budget)Enterprise.CreateKey(ctx, ...)enterprise.createKey(id, ...)
启停密钥enterprise.toggle_key(id, key_id)Enterprise.ToggleKey(ctx, ...)enterprise.toggleKey(id, ...)
删除密钥enterprise.delete_key(id, key_id)Enterprise.DeleteKey(ctx, ...)enterprise.deleteKey(id, ...)
企业钱包enterprise.wallet(id)Enterprise.Wallet(ctx, id)enterprise.wallet(id)
用量统计enterprise.stats(id)Enterprise.Stats(ctx, id)enterprise.stats(id)
企业日志enterprise.logs(id)Enterprise.Logs(ctx, id)enterprise.logs(id)
搜索企业enterprise.search(phone)Enterprise.Search(ctx, phone)enterprise.search(phone)
申请加入enterprise.request_join(id)Enterprise.RequestJoin(ctx, id)enterprise.requestJoin(id)
接受邀请enterprise.accept_invitation(token)Enterprise.AcceptInvitation(ctx, token)enterprise.acceptInvitation(token)

配置选项

所有 SDK 支持以下配置:

选项 说明 默认值
api_key API 密钥(AI 端点必填) —
access_token JWT Token(管理端点,也可 login 获取) —
base_url API 基础地址 https://gw.mrkop.com
timeout 超时时间 60 秒
max_retries 最大重试次数 3

错误处理

SDK 在以下情况抛出异常:

状态码 异常类型 说明
401AuthenticationErrorAPI Key 无效或未登录
429RateLimitError请求频率超限(自动重试)
网络错误ConnectionError / TimeoutError网络超时或连接失败
其他 4xx/5xxAPIError服务端错误,包含 status_code 和 message