CokeAPI
SDK 与集成

Node.js SDK

用 OpenAI Node.js SDK 接入 CokeAPI,服务端调用 chat / images / video 接口。

CokeAPI 与 OpenAI 协议兼容,用 OpenAI 官方 Node.js SDK 即可。

安装

npm install openai
# 或
pnpm add openai
yarn add openai

基础用法

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.cokeapi.com/v1",
  apiKey: process.env.COKEAPI_KEY,
});

// 文本
const resp = await client.chat.completions.create({
  model: "gpt-4o-mini",
  messages: [{ role: "user", content: "用一句话介绍 CokeAPI" }],
});
console.log(resp.choices[0].message.content);

// 图片
const img = await client.images.generate({
  model: "gpt-image-2",
  prompt: "一只在京都樱花树下的赛博狐狸",
  size: "1024x1024",
  n: 1,
});
console.log(img.data[0].url);

流式

const stream = await client.chat.completions.create({
  model: "grok-4.20-fast",
  messages: [{ role: "user", content: "讲个三句的笑话" }],
  stream: true,
});

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}

TypeScript 类型

OpenAI SDK 自带完整类型,直接用即可:

import OpenAI, { type ChatCompletionMessageParam } from "openai";

const messages: ChatCompletionMessageParam[] = [
  { role: "system", content: "你是简洁的助手" },
  { role: "user", content: "用一句话介绍 CokeAPI" },
];

const resp = await client.chat.completions.create({
  model: "gpt-4o-mini",
  messages,
});

视频生成

const BASE = "https://api.cokeapi.com/v1";
const KEY = process.env.COKEAPI_KEY;

const create = await fetch(`${BASE}/video/generations`, {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "grok-imagine-video",
    prompt: "雨夜霓虹中漫步的猫",
    quality: "hd",
    duration: 6,
  }),
});
const { id: taskId } = await create.json();

while (true) {
  const poll = await fetch(`${BASE}/video/generations/${taskId}`, {
    headers: { "Authorization": `Bearer ${KEY}` },
  });
  const data = await poll.json();
  if (data.status === "completed" || data.status === "failed") {
    console.log(data);
    break;
  }
  await new Promise((r) => setTimeout(r, 5000));
}

错误处理

import OpenAI, { RateLimitError, APIError } from "openai";

try {
  await client.chat.completions.create({...});
} catch (err) {
  if (err instanceof RateLimitError) {
    console.log("限流,稍后重试");
  } else if (err instanceof APIError) {
    console.log(`code=${err.error?.code} trace_id=${err.error?.trace_id}`);
  }
}

On this page