Skip to content

SDK and framework migrations

The named version jumps that break a build — openai-python v0 to v1, LangChain to LCEL, LlamaIndex Settings, the Vercel AI SDK majors.

A model API is a wire format and it changes slowly. The libraries wrapped around it are software, and they change at the speed of software. Almost nothing in this cluster is about a model behaving differently; it is about a client library that renamed a class, split itself into four packages, or replaced a constructor with a factory function, and about the specific hour you spend afterwards reading tracebacks that point at your own code.

These pages take one named jump each and walk the call sites. They quote the error the upgraded library actually raises, because that string is usually the only evidence you have, and they are explicit about the part of a migration nobody writes down: what has no equivalent on the other side, and what you do instead. Where a page names a version, treat the version as part of the claim — run the command that prints what you have installed before trusting a mapping table, including this one.

Migrating openai-python From v0 to v1

The call-site rewrite from module-level openai.ChatCompletion.create to an instantiated client, including the response-access and exception changes the automated tool leaves behind.

11 min read

Fixing "module 'openai' has no attribute 'ChatCompletion'"

Why the v1 SDK raises on the old module-level API, how to tell the shim's error apart from a real AttributeError, and the minimal diff for each call pattern.

9 min read

Migrating LangChain 0.0.x Imports to 0.1 and Later

How the flat langchain namespace split into langchain-core, partner packages and langchain-community, and which import each old path becomes.

10 min read

Migrating a LangChain Chain to LCEL

Rewriting an LLMChain as a pipe-composed runnable, including the return-type change and the old chain classes that have no direct equivalent.

11 min read

Migrating LlamaIndex ServiceContext to Settings

Rewriting a ServiceContext-based index build onto the global Settings object, and handling the per-instance configuration that a global cannot express.

10 min read

Migrating the Vercel AI SDK From v2 to v3

Replacing the v2 provider-stream-plus-StreamingTextResponse route handler with AI SDK Core's streamText, and what the provider abstraction does not carry across.

10 min read

Migrating the Vercel AI SDK From v3 to v4

The 3.4 to 4.0 removals and renames — provider facades, the AI-stream helpers, roundtrips, usage types — against a working v3 route handler.

11 min read

Fixing "streamText is not a function" After an AI SDK Upgrade

Why the import resolves but the export is missing, and the package.json and npm ls checks that tell a version problem from a wrong import path.

9 min read

Other topics