← Cloudflare AI Gateway / ai-gateway / usage
Workers Bindings
AI binding (env.AI) vám umožňuje volat AI modely a přistupovat k funkcím AI Gateway přímo z vašeho Workeru.
Průvodce nastavením krok za krokem najdete v Nastavení Workers AI s AI Gateway.
Konfigurace
Přidejte AI binding do svého Konfigurační soubor Wrangler:
{
"ai": {
"binding": "AI",
},
}[ai]
binding = "AI"Binding je ve vašem kódu Workeru dostupný jako env.AI.
Pokud používáte TypeScript, spusťte wrangler types pokaždé, když upravíte konfigurační soubor Wrangler. Tím se vygenerují typy pro env objekt na základě vašich vazeb, stejně jako typy runtime.
env.AI.run()
Spustí inferenční požadavek přes AI Gateway. Přijímá modely Workers AI (@cf/ prefix) a modely třetích stran ({author}/{model} formát).
Model Workers AI:
const resp = await env.AI.run(
"@cf/moonshotai/kimi-k2.5",
{
prompt: "tell me a joke",
},
{
gateway: {
id: "default", // or use a specific gateway name
},
},
);const resp = await env.AI.run(
"@cf/moonshotai/kimi-k2.5",
{
prompt: "tell me a joke",
},
{
gateway: {
id: "default", // or use a specific gateway name
},
},
);Chcete-li použít předplacené Kredity AI Gateway, nastavte u brány Nastavení fakturace Workers AI na Jednotné účtování a uveďte tuto gateway v požadavku na binding. Předplacené kredity zajišťují přístup k modelům Workers AI, které by jinak vyžadovaly plán Workers Paid, a poskytují vyšší limity počtu požadavků pro špičkové modely.
Model třetí strany:
const resp = await env.AI.run(
"openai/gpt-4.1-mini",
{
messages: [{ role: "user", content: "tell me a joke" }],
},
{
gateway: {
id: "default", // or use a specific gateway name
},
},
);const resp = await env.AI.run(
"openai/gpt-4.1-mini",
{
messages: [{ role: "user", content: "tell me a joke" }],
},
{
gateway: {
id: "default", // or use a specific gateway name
},
},
);Modely od třetích stran vyžadují AI Gateway a používají Unified Billing. Cloudflare spravuje přihlašovací údaje poskytovatele a odečítá kredity z vašeho účtu. Vlastní API klíče dodávat nemusíte.
Prohlédněte si dostupné modely v katalog modelů.
Možnosti gateway
Třetí argument env.AI.run() přijímá gateway objekt s následujícími parametry:
| Parametr | Typ | Výchozí | Popis |
|---|---|---|---|
id |
string |
povinné | Název vašeho AI Gateway. Musí být ve stejném účtu jako váš Worker. Použijte "default" pro automatické vytvoření gateway při prvním ověřeném požadavku. Další informace najdete v Výchozí brána s podrobnostmi. |
skipCache |
boolean |
false |
Přeskočte cache pro tento požadavek. |
cacheTtl |
number |
, | TTL mezipaměti v sekundách. |
cacheKey |
string |
, | Vlastní cache key pro tento požadavek. |
collectLog |
boolean |
, | Zda shromažďování protokolů pro tento požadavek. |
metadata |
object |
, | Vlastní metadata k připojení k záznamu protokolu. |
env.AI.aiGatewayLogId
Vrací ID protokolu z posledního env.AI.run() požadavek.
const myLogId = env.AI.aiGatewayLogId;env.AI.gateway()
Vrací instanci gateway pro přímý přístup k metodám AI Gateway.
const gateway = env.AI.gateway("my-gateway");Instance gateway zpřístupňuje následující metody.
patchLog()
Odesílá zpětnou vazbu, skóre a metadata pro konkrétní záznam protokolu. Všechny vlastnosti ve druhém argumentu jsou volitelné.
await gateway.patchLog("my-log-id", {
feedback: 1,
score: 100,
metadata: {
user: "123",
},
});Vrací: Promise<void>
getLog()
Načte podrobnosti o konkrétním záznamu protokolu. Pokud AiGatewayLog typ chybí, spusťte wrangler types.
const log = await gateway.getLog("my-log-id");Vrací: Promise<AiGatewayLog>
getUrl()
Vrací základní adresu URL vašeho AI Gateway. Volitelně předejte název poskytovatele a získáte koncový bod specifický pro daného poskytovatele.
const baseUrl = await gateway.getUrl();
// https://gateway.ai.cloudflare.com/v1/my-account-id/my-gateway/
const openaiUrl = await gateway.getUrl("openai");
// https://gateway.ai.cloudflare.com/v1/my-account-id/my-gateway/openaiParametry: Volitelné provider (string nebo AIGatewayProviders enum)
Vrací: Promise<string>
Příklady integrace SDK
OpenAI SDK:
import OpenAI from "openai";
const openai = new OpenAI({
apiKey: "my api key", // defaults to process.env["OPENAI_API_KEY"]
baseURL: await env.AI.gateway("my-gateway").getUrl("openai"),
});Vercel AI SDK s OpenAI:
import { createOpenAI } from "@ai-sdk/openai";
const openai = createOpenAI({
baseURL: await env.AI.gateway("my-gateway").getUrl("openai"),
});Vercel AI SDK s Anthropic:
import { createAnthropic } from "@ai-sdk/anthropic";
const anthropic = createAnthropic({
baseURL: await env.AI.gateway("my-gateway").getUrl("anthropic"),
});