文档
CodeRabbit
Cloudflare
AG Grid
Netlify
Neon
WorkOS
Clerk
Convex
Electric
PowerSync
Sentry
Railway
Prisma
Strapi
Unkey
CodeRabbit
Cloudflare
AG Grid
Netlify
Neon
WorkOS
Clerk
Convex
Electric
PowerSync
Sentry
Railway
Prisma
Strapi
Unkey
类引用
函数引用
接口引用
类型别名引用
变量引用
社区适配器

Decart

Decart 适配器提供访问 Decart 的图像和视频生成模型的功能。

安装

sh
npm install @decartai/tanstack-ai-adapter

基本用法

typescript
import { generateImage } from "@tanstack/ai";
import { decartImage } from "@decartai/tanstack-ai-adapter";

const result = await generateImage({
  adapter: decartImage("lucy-pro-t2i"),
  prompt: "A serene mountain landscape at sunset",
});

基本用法 - 自定义 API 密钥

typescript
import { generateImage } from "@tanstack/ai";
import { createDecartImage } from "@decartai/tanstack-ai-adapter";

const adapter = createDecartImage("lucy-pro-t2i", process.env.DECART_API_KEY!);

const result = await generateImage({
  adapter,
  prompt: "A serene mountain landscape at sunset",
});

配置

typescript
import { createDecartImage, type DecartImageConfig } from "@decartai/tanstack-ai-adapter";

const config: Omit<DecartImageConfig, "apiKey"> = {
  baseUrl: "https://api.decart.ai", // Optional, for custom endpoints
};

const adapter = createDecartImage("lucy-pro-t2i", process.env.DECART_API_KEY!, config);

图像生成

使用 lucy-pro-t2i 生成图像

typescript
import { generateImage } from "@tanstack/ai";
import { decartImage } from "@decartai/tanstack-ai-adapter";

const result = await generateImage({
  adapter: decartImage("lucy-pro-t2i"),
  prompt: "A futuristic cityscape at night",
});

console.log(result.images[0].b64Json);

图像模型选项

typescript
const result = await generateImage({
  adapter: decartImage("lucy-pro-t2i"),
  prompt: "A portrait of a robot artist",
  modelOptions: {
    resolution: "720p",
    orientation: "portrait",
    seed: 42,
  },
});
选项类型默认描述
分辨率"720p""720p"输出分辨率
方向"portrait" | "landscape""landscape"图像方向
种子number-用于可重复生成的种子

视频生成

视频生成使用异步任务/轮询架构。

创建视频任务

typescript
import { generateVideo } from "@tanstack/ai";
import { decartVideo } from "@decartai/tanstack-ai-adapter";

const { jobId } = await generateVideo({
  adapter: decartVideo("lucy-pro-t2v"),
  prompt: "A cat playing with a ball of yarn",
});

console.log("Job started:", jobId);

轮询状态

typescript
import { getVideoJobStatus } from "@tanstack/ai";
import { decartVideo } from "@decartai/tanstack-ai-adapter";

const status = await getVideoJobStatus({
  adapter: decartVideo("lucy-pro-t2v"),
  jobId,
});

console.log("Status:", status.status); // "pending" | "processing" | "completed" | "failed"

if (status.status === "completed" && status.url) {
  console.log("Video URL:", status.url);
}

包含轮询的完整示例

typescript
import { generateVideo, getVideoJobStatus } from "@tanstack/ai";
import { decartVideo } from "@decartai/tanstack-ai-adapter";

async function createVideo(prompt: string) {
  const adapter = decartVideo("lucy-pro-t2v");

  // Create the job
  const { jobId } = await generateVideo({ adapter, prompt });
  console.log("Job created:", jobId);

  // Poll for completion
  let status = "pending";
  while (status !== "completed" && status !== "failed") {
    await new Promise((resolve) => setTimeout(resolve, 5000));

    const result = await getVideoJobStatus({ adapter, jobId });
    status = result.status;
    console.log(`Status: ${status}`);

    if (result.status === "failed") {
      throw new Error("Video generation failed");
    }

    if (result.status === "completed" && result.url) {
      return result.url;
    }
  }
}

const videoUrl = await createVideo("A drone shot over a tropical beach");

视频模型选项

typescript
const { jobId } = await generateVideo({
  adapter: decartVideo("lucy-pro-t2v"),
  prompt: "A timelapse of a blooming flower",
  modelOptions: {
    resolution: "720p",
    orientation: "landscape",
    seed: 42,
  },
});
选项类型默认描述
分辨率"720p" | "480p""720p"输出分辨率
方向"portrait" | "landscape""landscape"视频方向
种子number-用于可重复生成的种子

环境变量

将您的 API 密钥设置为环境变量

sh
DECART_API_KEY=your-api-key-here

获取 API 密钥

  1. 访问 Decart 平台
  2. 创建一个帐户并生成 API 密钥
  3. 将其添加到您的环境变量中

API 参考

decartImage(model, config?)

使用环境变量创建 Decart 图像适配器。

参数

  • model - 模型名称 ("lucy-pro-t2i")
  • config.baseUrl? - 自定义基础 URL(可选)

返回值: 一个 Decart 图像适配器实例。

createDecartImage(model, apiKey, config?)

使用显式 API 密钥创建 Decart 图像适配器。

参数

  • model - 模型名称 ("lucy-pro-t2i")
  • apiKey - 您的 Decart API 密钥
  • config.baseUrl? - 自定义基础 URL(可选)

返回值: 一个 Decart 图像适配器实例。

decartVideo(model, config?)

使用环境变量创建 Decart 视频适配器。

参数

  • model - 模型名称 ("lucy-pro-t2v")
  • config.baseUrl? - 自定义基础 URL(可选)

返回值: 一个 Decart 视频适配器实例。

createDecartVideo(model, apiKey, config?)

使用显式 API 密钥创建 Decart 视频适配器。

参数

  • model - 模型名称 ("lucy-pro-t2v")
  • apiKey - 您的 Decart API 密钥
  • config.baseUrl? - 自定义基础 URL(可选)

返回值: 一个 Decart 视频适配器实例。

下一步