Web 应用
只需几行代码,就能为应用添加 AI 生成能力。Webhook 辅助方法用于处理异步结果回调。
RunAPI SDK 为 Python、Node.js、PHP、Java、Ruby 和 Go 应用提供统一的接入方式和类型定义,覆盖视频、图像、音乐、音频和 LLM 工作流。选择模型 SDK,设置 RUNAPI_API_KEY,创建任务,然后沿用 REST API 的任务处理流程,轮询结果或接收 Webhook 回调。
npm install @runapi.ai/kling
npm
import { KlingClient } from "@runapi.ai/kling";
const client = new KlingClient({ apiKey: process.env.RUNAPI_API_KEY });
const task = await client.textToVideo.create({
"model": "kling-v3-turbo-text-to-video",
"prompt": "A paper kite flying above a quiet coastal town at sunrise",
"duration_seconds": 5,
"aspect_ratio": "16:9",
"output_resolution": "720p"
});
pip install runapi-kling
PyPI
import os
from runapi.kling import KlingClient
client = KlingClient(api_key=os.environ["RUNAPI_API_KEY"])
task = client.text_to_video.create(
model="kling-v3-turbo-text-to-video",
prompt="A paper kite flying above a quiet coastal town at sunrise",
duration_seconds=5,
aspect_ratio="16:9",
output_resolution="720p"
)
go get github.com/runapi-ai/kling-sdk/go@latest
Go modules
package main
import (
"context"
"log"
"os"
"github.com/runapi-ai/core-sdk/go/option"
kling "github.com/runapi-ai/kling-sdk/go/kling"
)
func main() {
client, err := kling.NewClient(option.WithAPIKey(os.Getenv("RUNAPI_API_KEY")))
if err != nil {
log.Fatal(err)
}
task, err := client.TextToVideo.Create(context.Background(), kling.TextToVideoParams{
Model: kling.TextToVideoModel("kling-v3-turbo-text-to-video"),
Prompt: "A paper kite flying above a quiet coastal town at sunrise",
DurationSeconds: 5,
AspectRatio: "16:9",
OutputResolution: kling.KlingTextToVideoOutputResolution("720p"),
})
if err != nil {
log.Fatal(err)
}
_ = task
}
gem install runapi-kling
RubyGems
require "runapi/kling"
client = RunApi::Kling::Client.new(api_key: ENV.fetch("RUNAPI_API_KEY"))
task = client.text_to_video.create(
model: "kling-v3-turbo-text-to-video",
prompt: "A paper kite flying above a quiet coastal town at sunrise",
duration_seconds: 5,
aspect_ratio: "16:9",
output_resolution: "720p"
)
implementation("ai.runapi:runapi-kling")
Maven
import ai.runapi.kling.KlingClient;
import ai.runapi.kling.types.TextToVideoParams;
import ai.runapi.core.polling.TaskCreateResponse;
public final class Example {
public static void main(String[] args) {
KlingClient client = KlingClient.builder()
.apiKey(System.getenv("RUNAPI_API_KEY"))
.build();
TaskCreateResponse task = client.textToVideo().create(
TextToVideoParams.builder()
.model("kling-v3-turbo-text-to-video")
.prompt("A paper kite flying above a quiet coastal town at sunrise")
.durationSeconds(5)
.aspectRatio("16:9")
.outputResolution("720p")
.build()
);
}
}
composer require runapi-ai/kling
Packagist
<?php
require __DIR__ . '/vendor/autoload.php';
use RunApi\Core\ClientOptions;
use RunApi\Kling\KlingClient;
$client = new KlingClient(new ClientOptions(apiKey: getenv('RUNAPI_API_KEY')));
$task = $client->textToVideo->create([
"model" => "kling-v3-turbo-text-to-video",
"prompt" => "A paper kite flying above a quiet coastal town at sunrise",
"duration_seconds" => 5,
"aspect_ratio" => "16:9",
"output_resolution" => "720p"
]);
模型专属 SDK 共享同一套任务对象、认证、错误处理和价格链接。
import os
from runapi.kling import KlingClient
client = KlingClient(api_key=os.environ["RUNAPI_API_KEY"])
task = client.text_to_video.create(
model="kling-v3-turbo-text-to-video",
prompt="A paper kite flying above a quiet coastal town at sunrise",
duration_seconds=5,
aspect_ratio="16:9",
output_resolution="720p"
)
import { KlingClient } from "@runapi.ai/kling";
const client = new KlingClient({ apiKey: process.env.RUNAPI_API_KEY });
const task = await client.textToVideo.create({
"model": "kling-v3-turbo-text-to-video",
"prompt": "A paper kite flying above a quiet coastal town at sunrise",
"duration_seconds": 5,
"aspect_ratio": "16:9",
"output_resolution": "720p"
});
package main
import (
"context"
"log"
"os"
"github.com/runapi-ai/core-sdk/go/option"
kling "github.com/runapi-ai/kling-sdk/go/kling"
)
func main() {
client, err := kling.NewClient(option.WithAPIKey(os.Getenv("RUNAPI_API_KEY")))
if err != nil {
log.Fatal(err)
}
task, err := client.TextToVideo.Create(context.Background(), kling.TextToVideoParams{
Model: kling.TextToVideoModel("kling-v3-turbo-text-to-video"),
Prompt: "A paper kite flying above a quiet coastal town at sunrise",
DurationSeconds: 5,
AspectRatio: "16:9",
OutputResolution: kling.KlingTextToVideoOutputResolution("720p"),
})
if err != nil {
log.Fatal(err)
}
_ = task
}
只需几行代码,就能为应用添加 AI 生成能力。Webhook 辅助方法用于处理异步结果回调。
大规模处理生成请求。内置重试和速率限制,让服务保持可靠。
生成训练数据、扩充数据集,或在 ML 流水线中创建合成媒体。
即插即用的替代方案。更换 base URL,保留现有代码。
为每个模型、端点和参数提供 TypeScript 与 Python 类型定义。
所有支持的语言都提供原生 async/await 和 SSE 流式传输。
RunAPI 维护 Python、Node.js、PHP、Java、Ruby 和 Go 的模型专属 SDK。PHP 包已在 Packagist 发布,可通过 Composer 安装。每个包面向一个模型系列;Elixir、.NET 和任何能发送 HTTPS 请求的运行时都可以继续使用 REST API。
模型专属包让应用依赖更小,也让请求字段更容易理解。视频应用可以安装 Kling 或 Seedance,音乐应用可以安装 Suno,多模态后端可以随着新工作流上线继续添加包。
当前 SDK 接口规范覆盖 232 个公开模型 ID 和 128 个请求操作。该规范从 RunAPI 模型目录生成,用于保持 SDK 示例、CLI 元数据和 API 文档一致。
不会。SDK 调用使用与 REST、CLI、MCP 和模型技能包相同的 RunAPI API Key。请把它存入 RUNAPI_API_KEY 或部署环境的密钥管理服务,不要硬编码进源码。
可以。SDK 创建的任务使用与 REST 请求相同的任务生命周期。你可以通过后台任务轮询任务状态,也可以配置回调处理,让 RunAPI 将任务完成或失败时的结果发送到你的后端。
集成模型前请查看模型目录和价格页。SDK 文档会链接回模型页,让开发者查看当前计费单位、端点形态和支持的模型 ID,而不用把价格数值复制进代码。
我们可以协助团队接入、完成系统集成并解答技术问题。