跳到主要内容

SkillFlaw TypeScript 集成

SkillFlaw 当前并没有随仓库发布官方维护的 TypeScript SDK。 推荐的 TypeScript 集成方式有两种:

  1. 直接通过 fetchaxios 或其他 HTTP 客户端调用 SkillFlaw HTTP API
  2. 使用 OpenAI JavaScript 客户端调用 SkillFlaw 的 OpenAI 兼容端点 /api/v1/responses

这种做法与当前后端实现保持一致,也与 Share → API access 中自动生成的代码片段口径一致。

方案 1:直接调用 /api/v1/run/{flow_id_or_alias}

当你需要原生 SkillFlaw run 请求体时,推荐使用这种方式,例如需要:

  • input_value
  • input_type
  • output_type
  • tweaks
  • session_id

_31
const baseUrl = "http://localhost:7860";
_31
const apiKey = process.env.SKILLFLAW_API_KEY!;
_31
const flowId = "YOUR_FLOW_ID";
_31
_31
async function runFlow() {
_31
const response = await fetch(`${baseUrl}/api/v1/run/${flowId}`, {
_31
method: "POST",
_31
headers: {
_31
"Content-Type": "application/json",
_31
"x-api-key": apiKey,
_31
},
_31
body: JSON.stringify({
_31
input_value: "Hello from TypeScript",
_31
input_type: "chat",
_31
output_type: "chat",
_31
tweaks: {
_31
model_name: "gpt-4o-mini",
_31
},
_31
session_id: "ts-example-session",
_31
}),
_31
});
_31
_31
if (!response.ok) {
_31
throw new Error(`SkillFlaw run failed: ${response.status} ${response.statusText}`);
_31
}
_31
_31
const data = await response.json();
_31
console.log(JSON.stringify(data, null, 2));
_31
}
_31
_31
runFlow().catch(console.error);

何时使用原生 run 端点

以下场景更适合用 /api/v1/run/{flow_id_or_alias}

  • 你想复用 SkillFlaw UI 中生成的同款请求结构
  • 你需要 tweaks
  • 你需要显式控制 session_id
  • 你想与现有 SkillFlaw Flow 示例保持直接兼容

方案 2:使用 OpenAI JavaScript 客户端

如果你的应用已经在用 OpenAI SDK,可以把它指向 SkillFlaw 的 OpenAI 兼容端点:


_20
import OpenAI from "openai";
_20
_20
const client = new OpenAI({
_20
baseURL: "http://localhost:7860/api/v1/",
_20
defaultHeaders: {
_20
"x-api-key": process.env.SKILLFLAW_API_KEY!,
_20
},
_20
apiKey: "dummy-api-key", // SDK 必填,但 SkillFlaw 会忽略它
_20
});
_20
_20
async function runResponse() {
_20
const response = await client.responses.create({
_20
model: "YOUR_FLOW_ID_OR_ALIAS",
_20
input: "Summarize the latest deployment changes.",
_20
});
_20
_20
console.log(response.output_text);
_20
}
_20
_20
runResponse().catch(console.error);

如果你希望在已有 OpenAI 客户端集成层上最小代价接入 SkillFlaw,这种方式很合适。 完整请求 / 响应契约请参阅 OpenAI Responses API

认证

无论哪种方式,SkillFlaw 都通过 x-api-key 请求头做认证。 推荐做法:

  • 创建或获取一个 SkillFlaw API Key
  • 把它保存在环境变量中,例如 SKILLFLAW_API_KEY
  • 每次请求都通过 x-api-key 传递

该选哪一种?

场景推荐方式
你想使用与 SkillFlaw UI 代码片段一致的请求结构/api/v1/run/{flow_id_or_alias}
你需要 tweaks 与显式 session_id/api/v1/run/{flow_id_or_alias}
你的应用已经依赖 OpenAI JavaScript SDK/api/v1/responses
你想保持最小依赖面直接 fetch

相关页面