
Company News
Jerod Santo Joins Socket as Head of Media
Allow myself to introduce... myself.
@ai-sdk/openai-compatible
Advanced tools
This package provides a foundation for implementing providers that expose an OpenAI-compatible API.
The primary OpenAI provider is more feature-rich, including OpenAI-specific experimental and legacy features. This package offers a lighter-weight alternative focused on core OpenAI-compatible functionality.
Deploying to Vercel? With Vercel's AI Gateway you can access hundreds of models from any provider — no additional packages, API keys, or extra cost. Get started with AI Gateway.
The provider is available in the @ai-sdk/openai-compatible module. You can install it with
npm i @ai-sdk/openai-compatible
If you use coding agents such as Claude Code or Cursor, we highly recommend adding the AI SDK skill to your repository:
npx skills add vercel/ai
You can import the provider creation method createOpenAICompatible from @ai-sdk/openai-compatible:
import { createOpenAICompatible } from '@ai-sdk/openai-compatible';
import { createOpenAICompatible } from '@ai-sdk/openai-compatible';
import { generateText } from 'ai';
const { text } = await generateText({
model: createOpenAICompatible({
baseURL: 'https://api.example.com/v1',
name: 'example',
apiKey: process.env.MY_API_KEY,
}).chatModel('meta-llama/Llama-3-70b-chat-hf'),
prompt: 'Write a vegetarian lasagna recipe for 4 people.',
});
You can further customize headers if desired. For example, here is an alternate implementation to pass along api key authentication:
import { createOpenAICompatible } from '@ai-sdk/openai-compatible';
import { generateText } from 'ai';
const { text } = await generateText({
model: createOpenAICompatible({
baseURL: 'https://api.example.com/v1',
name: 'example',
headers: {
Authorization: `Bearer ${process.env.MY_API_KEY}`,
},
}).chatModel('meta-llama/Llama-3-70b-chat-hf'),
prompt: 'Write a vegetarian lasagna recipe for 4 people.',
});
import { createOpenAICompatible } from '@ai-sdk/openai-compatible';
import { generateText } from 'ai';
type ExampleChatModelIds =
| 'meta-llama/Llama-3-70b-chat-hf'
| 'meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo'
| (string & {});
type ExampleCompletionModelIds =
| 'codellama/CodeLlama-34b-Instruct-hf'
| 'Qwen/Qwen2.5-Coder-32B-Instruct'
| (string & {});
type ExampleEmbeddingModelIds =
| 'BAAI/bge-large-en-v1.5'
| 'bert-base-uncased'
| (string & {});
const model = createOpenAICompatible<
ExampleChatModelIds,
ExampleCompletionModelIds,
ExampleEmbeddingModelIds
>({
baseURL: 'https://api.example.com/v1',
name: 'example',
apiKey: process.env.MY_API_KEY,
});
// Subsequent calls to e.g. `model.chatModel` will auto-complete the model id
// from the list of `ExampleChatModelIds` while still allowing free-form
// strings as well.
const { text } = await generateText({
model: model.chatModel('meta-llama/Llama-3-70b-chat-hf'),
prompt: 'Write a vegetarian lasagna recipe for 4 people.',
});
For more examples, see the OpenAI Compatible Providers documentation.
FAQs
Unknown package
The npm package @ai-sdk/openai-compatible receives a total of 5,127,744 weekly downloads. As such, @ai-sdk/openai-compatible popularity was classified as popular.
We found that @ai-sdk/openai-compatible demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 open source maintainers collaborating on the project.

Company News
Allow myself to introduce... myself.

Research
/Security News
A Twitch browser extension on Chrome and Firefox forwards users’ live OAuth session tokens through proxies controlled by a Russian bot service.

Security News
Anthropic found biased reasoning and recklessness drove Claude Mythos 5 to publish malware on PyPI and compromise a security vendor.