import OpenAI from "openai";
const openai = new OpenAI({
baseURL: "https://api.inference.net/v1",
apiKey: "<YOUR_API_KEY>",
});
const completion = await openai.chat.completions.create({
model: "gemini-2.5-flash",
messages: [
{
role: "user",
content: "What is the meaning of life?"
}
],
stream: true,
});
for await (const chunk of completion) {
process.stdout.write(chunk.choices[0]?.delta.content as string);
}import OpenAI from "openai";
const openai = new OpenAI({
baseURL: "https://api.inference.net/v1",
apiKey: "<YOUR_API_KEY>",
});
const completion = await openai.chat.completions.create({
model: "gemini-2.5-flash",
messages: [
{
role: "user",
content: "What is the meaning of life?"
}
],
stream: true,
});
for await (const chunk of completion) {
process.stdout.write(chunk.choices[0]?.delta.content as string);
}Prompt caching
- Keep the stable system content block byte-identical across calls.
- Mark it with cache_control: { "type": "ephemeral" } to set a cache point.
- Long prompts are required. As a practical target, use roughly 4,000 stable tokens for Gemini 3.1 Pro Preview or 9,000 for the other listed Gemini models; these are not guaranteed provider minimums.
- Check usage.prompt_tokens_details.cached_tokens in the response to confirm cache reads.
{
"messages": [{
"role": "system",
"content": [{
"type": "text",
"text": "Stable system content...",
"cache_control": { "type": "ephemeral" }
}]
}]
}{
"messages": [{
"role": "system",
"content": [{
"type": "text",
"text": "Stable system content...",
"cache_control": { "type": "ephemeral" }
}]
}]
}