OpenAI
Use GPT-4o, GPT-4, and GPT-3.5 models
OpenAI
GPT-4o, GPT-4, GPT-3.5 Turbo
The most popular LLM provider. Access GPT-4o, GPT-4 Turbo, and GPT-3.5 models.
Setup
1. Install Packages
npm install @yourgpt/copilot-sdk @yourgpt/llm-sdk openai2. Get API Key
Get your API key from platform.openai.com
3. Add Environment Variable
OPENAI_API_KEY=sk-...4. Usage
import { generateText } from '@yourgpt/llm-sdk';
import { openai } from '@yourgpt/llm-sdk/openai';
const result = await generateText({
model: openai('gpt-4o'),
prompt: 'Explain quantum computing simply.',
});
console.log(result.text);5. Streaming (API Route)
import { streamText } from '@yourgpt/llm-sdk';
import { openai } from '@yourgpt/llm-sdk/openai';
export async function POST(req: Request) {
const { messages } = await req.json();
const result = await streamText({
model: openai('gpt-4o'),
system: 'You are a helpful assistant.',
messages,
});
return result.toTextStreamResponse();
}Available Models
// Latest and best
openai('gpt-4o') // Fastest GPT-4 class
openai('gpt-5.2') // Cost-effective, very capable
// GPT-4 Turbo
openai('gpt-4-turbo') // 128K context
// GPT-3.5
openai('gpt-3.5-turbo') // Fast and cheapConfiguration Options
import { openai } from '@yourgpt/llm-sdk/openai';
// Custom API key
const model = openai('gpt-4o', {
apiKey: 'sk-custom-key',
});
// With generation options
const result = await generateText({
model: openai('gpt-4o'),
prompt: 'Hello',
temperature: 0.7, // 0-2, default 1
maxTokens: 4096, // Max response length
});Tool Calling
OpenAI has excellent tool/function calling support:
import { generateText, tool } from '@yourgpt/llm-sdk';
import { openai } from '@yourgpt/llm-sdk/openai';
import { z } from 'zod';
const result = await generateText({
model: openai('gpt-4o'),
prompt: 'What is the weather in Tokyo?',
tools: {
getWeather: tool({
description: 'Get weather for a city',
parameters: z.object({
city: z.string().describe('City name'),
}),
execute: async ({ city }) => {
// Your weather API call
return { temperature: 22, condition: 'sunny' };
},
}),
},
maxSteps: 5, // Allow multiple tool calls
});Vision (Image Input)
GPT-4o supports image analysis. Send images in your messages:
const result = await generateText({
model: openai('gpt-4o'),
messages: [
{
role: 'user',
content: [
{ type: 'text', text: "What's in this image?" },
{ type: 'image', image: base64ImageData },
],
},
],
});With Copilot UI
Use with the Copilot React components:
'use client';
import { CopilotProvider } from '@yourgpt/copilot-sdk/react';
export function Providers({ children }: { children: React.ReactNode }) {
return (
<CopilotProvider runtimeUrl="/api/chat">
{children}
</CopilotProvider>
);
}MCP servers + Reasoning effort (Responses API)
Setting mcpServers or reasoningEffort on a request routes the call
through OpenAI's /v1/responses endpoint instead of Chat Completions
(those fields aren't accepted on Chat Completions).
const result = await runtime.response({
prompt: 'Create a GitHub issue with the latest deploy errors.',
mcpServers: [{
label: 'github',
url: 'https://mcp.github.com/sse',
headers: { Authorization: `Bearer ${process.env.GH_TOKEN}` },
allowedTools: ['create_issue'],
requireApproval: 'never',
}],
reasoningEffort: 'high',
});Maps to:
tools: [{ type: 'mcp', server_label, server_url, headers, allowed_tools, require_approval }]reasoning: { effort: 'high', summary: 'auto' }store: false(one-shot semantics — no persistence on OpenAI's side)text.formatwhenresponseFormatis also set
reasoningEffort accepts minimal/low/medium/high directly.
Use { raw: { effort: 'xhigh' } } to pass the wider native range
(none/xhigh) for o-series and gpt-5 reasoning models.
See Structured Output → MCP servers and → Reasoning effort for the cross-provider reference.
Pricing
| Model | Input | Output |
|---|---|---|
| gpt-4o | $2.50/1M tokens | $10/1M tokens |
| gpt-5.2 | $0.15/1M tokens | $0.60/1M tokens |
| gpt-3.5-turbo | $0.50/1M tokens | $1.50/1M tokens |
Prices as of late 2024. Check OpenAI pricing for current rates.
Next Steps
- Anthropic - Try Claude models
- generateText() - Full API reference
- tool() - Define tools with Zod