AI SDK 3.4 → 4.0 마이그레이션
AI SDK 3.4 → 4.0 마이그레이션
AI SDK 3.4에서 4.0으로 업그레이드할 때 필요한 모든 변경 사항을 정리한 가이드예요. 이번 버전은 프로바이더 페이사드 제거, streamText가 즉시 반환되는 변화, roundtrips → maxSteps 전환, codemod를 통한 자동 마이그레이션 등 아주 많은 변경이 포함되어 있어요. 공식 codemod를 먼저 돌리고 본 가이드를 따라가면 대부분 안전하게 넘어갈 수 있어요.
출처: 문서
본문
자세한 내용은 AI SDK 4.0 릴리스 블로그 글을 확인해보세요.
권장 마이그레이션 프로세스 (Recommended Migration Process)
- 프로젝트를 백업하세요. 버전 관리 시스템을 사용한다면 모든 이전 버전이 커밋되었는지 확인하세요.
- AI SDK 3.4로 마이그레이션 하세요.
- AI SDK 4.0으로 업그레이드하세요.
- codemod를 사용해 코드를 자동으로 마이그레이션하세요.
codemod를 사용하고 싶지 않다면, AI SDK 4.0으로 업그레이드하기 전에 모든 지원 중단(deprecation) 경고를 해결하는 것을 권장합니다.
- 아래의 호환성이 깨지는 변경 가이드를 따르세요.
- 프로젝트가 예상대로 동작하는지 검증하세요.
- 변경 사항을 커밋하세요.
AI SDK 4.0 패키지 버전
package.json 파일에서 다음 패키지들을 해당 버전으로 업데이트해야 합니다:
ai패키지:4.0.*ai-sdk@provider-utils패키지:2.0.*ai-sdk/*패키지:1.0.*(그 외@ai-sdk패키지들)
Codemods
AI SDK는 기능이 지원 중단되거나, 제거되거나, 변경될 때 코드베이스 업그레이드를 돕는 Codemod 변환을 제공합니다.
Codemod는 코드베이스에서 프로그램 방식으로 실행되는 변환입니다. 모든 파일을 수동으로 살펴보지 않고도 많은 변경을 쉽게 적용할 수 있게 해줍니다.
Codemod는 업그레이드 과정을 돕기 위한 도구로 의도되었습니다. 필요한 모든 변경을 다 다루지는 못할 수 있습니다. 추가 변경을 수동으로 해야 할 수도 있습니다.
프로젝트 루트에서 다음 명령을 실행하면 4.0 업그레이드 과정의 일부로 제공되는 모든 codemod를 실행할 수 있습니다:
npx @ai-sdk/codemod upgrade
v4 codemod만 실행하려면:
npx @ai-sdk/codemod v4
개별 codemod는 codemod 이름을 지정해 실행할 수 있습니다:
npx @ai-sdk/codemod <codemod-name> <path>
예를 들어, 특정 v4 codemod를 실행하려면:
npx @ai-sdk/codemod v4/replace-baseurl src/
codemod 표도 참고하세요. 또한 최신 codemod 세트는
@ai-sdk/codemod
저장소에서 찾을 수 있습니다.
프로바이더 변경 사항 (Provider Changes)
제거된 baseUrl 옵션
baseUrl 옵션이 모든 프로바이더에서 제거되었습니다. baseURL 옵션을 대신 사용하세요.
const perplexity = createOpenAI({
// ...
baseUrl: 'https://api.perplexity.ai/',
});
const perplexity = createOpenAI({
// ...
baseURL: 'https://api.perplexity.ai/',
});
Anthropic 프로바이더
제거된 Anthropic 페이사드 (facade)
Anthropic 페이사드가 Anthropic 프로바이더에서 제거되었습니다.
anthropic 객체 또는 createAnthropic 함수를 대신 사용하세요.
const anthropic = new Anthropic({
// ...
});
const anthropic = createAnthropic({
// ...
});
제거된 topK 설정
이 변경에는 사용 가능한 codemod가 없습니다. 코드를 수동으로 검토하고 업데이트하세요.
모델별 topK 설정이 Anthropic 프로바이더에서 제거되었습니다.
표준 topK 설정을 사용할 수 있습니다.
const result = await generateText({
model: anthropic('claude-3-5-sonnet-latest', {
topK: 0.5,
}),
});
const result = await generateText({
model: anthropic('claude-3-5-sonnet-latest'),
topK: 0.5,
});
Google Generative AI 프로바이더
제거된 Google 페이사드
Google 페이사드가 Google Generative AI 프로바이더에서 제거되었습니다.
google 객체 또는 createGoogleGenerativeAI 함수를 대신 사용하세요.
const google = new Google({
// ...
});
const google = createGoogleGenerativeAI({
// ...
});
제거된 topK 설정
이 변경에는 사용 가능한 codemod가 없습니다. 코드를 수동으로 검토하고 업데이트하세요.
모델별 topK 설정이 Google Generative AI 프로바이더에서 제거되었습니다.
표준 topK 설정을 사용할 수 있습니다.
const result = await generateText({
model: google('gemini-1.5-flash', {
topK: 0.5,
}),
});
const result = await generateText({
model: google('gemini-1.5-flash'),
topK: 0.5,
});
Google Vertex 프로바이더
제거된 topK 설정
이 변경에는 사용 가능한 codemod가 없습니다. 코드를 수동으로 검토하고 업데이트하세요.
모델별 topK 설정이 Google Vertex 프로바이더에서 제거되었습니다.
표준 topK 설정을 사용할 수 있습니다.
const result = await generateText({
model: vertex('gemini-1.5-flash', {
topK: 0.5,
}),
});
const result = await generateText({
model: vertex('gemini-1.5-flash'),
topK: 0.5,
});
Mistral 프로바이더
제거된 Mistral 페이사드
Mistral 페이사드가 Mistral 프로바이더에서 제거되었습니다.
mistral 객체 또는 createMistral 함수를 대신 사용하세요.
const mistral = new Mistral({
// ...
});
const mistral = createMistral({
// ...
});
OpenAI 프로바이더
제거된 OpenAI 페이사드
OpenAI 페이사드가 OpenAI 프로바이더에서 제거되었습니다.
openai 객체 또는 createOpenAI 함수를 대신 사용하세요.
const openai = new OpenAI({
// ...
});
const openai = createOpenAI({
// ...
});
LangChain 어댑터
제거된 toAIStream
toAIStream 함수가 LangChain 어댑터에서 제거되었습니다.
toDataStream 함수를 대신 사용하세요.
LangChainAdapter.toAIStream(stream);
LangChainAdapter.toDataStream(stream);
AI SDK Core 변경 사항
streamText가 즉시 반환됨
Promise를 반환하는 대신, streamText 함수가 이제 즉시 반환합니다.
streamText의 결과를 await할 필요가 없습니다.
const result = await streamText({
// ...
});
const result = streamText({
// ...
});
streamObject가 즉시 반환됨
Promise를 반환하는 대신, streamObject 함수가 이제 즉시 반환합니다.
streamObject의 결과를 await할 필요가 없습니다.
const result = await streamObject({
// ...
});
const result = streamObject({
// ...
});
roundtrips 제거
maxToolRoundtrips와 maxAutomaticRoundtrips 옵션이 generateText 및 streamText 함수에서 제거되었습니다.
maxSteps 옵션을 대신 사용하세요.
roundtrips 속성이 GenerateTextResult 타입에서 제거되었습니다.
steps 속성을 대신 사용하세요.
const { text, roundtrips } = await generateText({
maxToolRoundtrips: 1, // or maxAutomaticRoundtrips
// ...
});
const { text, steps } = await generateText({
maxSteps: 2,
// ...
});
제거된 nanoid export
nanoid export가 제거되었습니다. 대신 generateId를 사용하세요.
import { nanoid } from 'ai';
import { generateId } from 'ai';
생성 ID의 기본 크기 증가
이 변경에는 사용 가능한 codemod가 없습니다. 코드를 수동으로 검토하고 업데이트하세요.
generateId 함수가 이제
16자 ID를 생성합니다. 이전 기본값은 7자였습니다.
예를 들어 ID 길이를 제한한다면 데이터베이스 스키마를 업데이트해야 할 수 있습니다.
import { generateId } from 'ai';
const id = generateId(); // now 16 characters
제거된 ExperimentalMessage 타입들
다음 타입들이 제거되었습니다:
ExperimentalMessage(ModelMessage를 대신 사용)ExperimentalUserMessage(CoreUserMessage를 대신 사용)ExperimentalAssistantMessage(CoreAssistantMessage를 대신 사용)ExperimentalToolMessage(CoreToolMessage를 대신 사용)
import {
ExperimentalMessage,
ExperimentalUserMessage,
ExperimentalAssistantMessage,
ExperimentalToolMessage,
} from 'ai';
import {
ModelMessage,
CoreUserMessage,
CoreAssistantMessage,
CoreToolMessage,
} from 'ai';
제거된 ExperimentalTool 타입
ExperimentalTool 타입이 제거되었습니다. CoreTool 타입을 대신 사용하세요.
import { ExperimentalTool } from 'ai';
import { CoreTool } from 'ai';
제거된 실험적 AI 함수 exports
다음 exports가 제거되었습니다:
experimental_generateText(generateText를 대신 사용)experimental_streamText(streamText를 대신 사용)experimental_generateObject(generateObject를 대신 사용)experimental_streamObject(streamObject를 대신 사용)
import {
experimental_generateText,
experimental_streamText,
experimental_generateObject,
experimental_streamObject,
} from 'ai';
import { generateText, streamText, generateObject, streamObject } from 'ai';
streamText에서 AI-stream 관련 메서드 제거
다음 메서드들이 streamText 결과에서 제거되었습니다:
toAIStreampipeAIStreamToResponsetoAIStreamResponse
toDataStream, pipeDataStreamToResponse, toDataStreamResponse 함수를 대신 사용하세요.
const result = await streamText({
// ...
});
result.toAIStream();
result.pipeAIStreamToResponse(response);
result.toAIStreamResponse();
const result = streamText({
// ...
});
result.toDataStream();
result.pipeDataStreamToResponse(response);
result.toUIMessageStreamResponse();
"formatStreamPart"가 "formatDataStreamPart"로 이름 변경
formatStreamPart 함수가 formatDataStreamPart로 이름이 변경되었습니다.
formatStreamPart('text', 'Hello, world!');
formatDataStreamPart('text', 'Hello, world!');
"parseStreamPart"가 "parseDataStreamPart"로 이름 변경
parseStreamPart 함수가 parseDataStreamPart로 이름이 변경되었습니다.
const part = parseStreamPart(line);
const part = parseDataStreamPart(line);
TokenUsage, CompletionTokenUsage, EmbeddingTokenUsage 타입 이름 변경
TokenUsage, CompletionTokenUsage, EmbeddingTokenUsage 타입이
LanguageModelUsage(앞의 두 개)와 EmbeddingModelUsage(마지막 하나)로 이름이 변경되었습니다.
import { TokenUsage, CompletionTokenUsage, EmbeddingTokenUsage } from 'ai';
import { LanguageModelUsage, EmbeddingModelUsage } from 'ai';
제거된 지원 중단 텔레메트리 데이터
이 변경에는 사용 가능한 codemod가 없습니다. 코드를 수동으로 검토하고 업데이트하세요.
다음 텔레메트리 데이터 값들이 제거되었습니다:
ai.finishReason(이제ai.response.finishReason)ai.result.object(이제ai.response.object)ai.result.text(이제ai.response.text)ai.result.toolCalls(이제ai.response.toolCalls)ai.stream.msToFirstChunk(이제ai.response.msToFirstChunk)
이 변경은 관측성 프로바이더와 텔레메트리 데이터를 처리하는 데 사용하는 모든 스크립트나 자동화에 적용됩니다.
프로바이더 레지스트리 (Provider Registry)
제거된 experimental_Provider, experimental_ProviderRegistry, experimental_ModelRegistry
experimental_Provider 인터페이스, experimental_ProviderRegistry 인터페이스, experimental_ModelRegistry 인터페이스가 제거되었습니다.
Provider 인터페이스를 대신 사용하세요.
import { experimental_Provider, experimental_ProviderRegistry } from 'ai';
import { Provider } from 'ai';
모델 레지스트리는 더 이상 사용할 수 없습니다. 대신 프로바이더를 등록하세요.
제거된 experimental_createModelRegistry 함수
experimental_createModelRegistry 함수가 제거되었습니다.
experimental_createProviderRegistry 함수를 대신 사용하세요.
import { experimental_createModelRegistry } from 'ai';
import { experimental_createProviderRegistry } from 'ai';
모델 레지스트리는 더 이상 사용할 수 없습니다. 대신 프로바이더를 등록하세요.
결과에서 제거된 rawResponse
이 변경에는 사용 가능한 codemod가 없습니다. 코드를 수동으로 검토하고 업데이트하세요.
rawResponse 속성이 generateText, streamText, generateObject, streamObject 결과에서 제거되었습니다.
response 속성을 대신 사용할 수 있습니다.
const { text, rawResponse } = await generateText({
// ...
});
const { text, response } = await generateText({
// ...
});
pipeDataStreamToResponse와 toDataStreamResponse에서 제거된 init 옵션
이 변경에는 사용 가능한 codemod가 없습니다. 코드를 수동으로 검토하고 업데이트하세요.
init 옵션이 pipeDataStreamToResponse와 toDataStreamResponse 함수에서 제거되었습니다.
init의 값을 options 객체에 직접 설정할 수 있습니다.
const result = await streamText({
// ...
});
result.toUIMessageStreamResponse(response, {
init: {
headers: {
'X-Custom-Header': 'value',
},
},
// ...
});
const result = streamText({
// ...
});
result.toUIMessageStreamResponse(response, {
headers: {
'X-Custom-Header': 'value',
},
// ...
});
generateText와 streamText에서 제거된 responseMessages
이 변경에는 사용 가능한 codemod가 없습니다. 코드를 수동으로 검토하고 업데이트하세요.
responseMessages 속성이 generateText와 streamText 결과에서 제거되었습니다.
여기에는 onFinish 콜백도 포함됩니다.
response.messages 속성을 대신 사용하세요.
const { text, responseMessages } = await generateText({
// ...
});
const { text, response } = await generateText({
// ...
});
const responseMessages = response.messages;
제거된 experimental_continuationSteps 옵션
experimental_continuationSteps 옵션이 generateText 함수에서 제거되었습니다.
experimental_continueSteps 옵션을 대신 사용하세요.
const result = await generateText({
experimental_continuationSteps: true,
// ...
});
const result = await generateText({
experimental_continueSteps: true,
// ...
});
제거된 LanguageModelResponseMetadataWithHeaders 타입
LanguageModelResponseMetadataWithHeaders 타입이 제거되었습니다.
LanguageModelResponseMetadata 타입을 대신 사용하세요.
import { LanguageModelResponseMetadataWithHeaders } from 'ai';
import { LanguageModelResponseMetadata } from 'ai';
streamText warnings 결과가 Promise로 변경됨
이 변경에는 사용 가능한 codemod가 없습니다. 코드를 수동으로 검토하고 업데이트하세요.
StreamTextResult 타입의 warnings 속성이 이제 Promise입니다.
const result = await streamText({
// ...
});
const warnings = result.warnings;
const result = streamText({
// ...
});
const warnings = await result.warnings;
streamObject warnings 결과가 Promise로 변경됨
이 변경에는 사용 가능한 codemod가 없습니다. 코드를 수동으로 검토하고 업데이트하세요.
StreamObjectResult 타입의 warnings 속성이 이제 Promise입니다.
const result = await streamObject({
// ...
});
const warnings = result.warnings;
const result = streamObject({
// ...
});
const warnings = await result.warnings;
simulateReadableStream의 values가 chunks로 이름 변경
이 변경에는 사용 가능한 codemod가 없습니다. 코드를 수동으로 검토하고 업데이트하세요.
ai/test의 simulateReadableStream 함수가 chunks로 이름이 변경되었습니다.
import { simulateReadableStream } from 'ai/test';
const stream = simulateReadableStream({
values: [1, 2, 3],
chunkDelayInMs: 100,
});
import { simulateReadableStream } from 'ai/test';
const stream = simulateReadableStream({
chunks: [1, 2, 3],
chunkDelayInMs: 100,
});
AI SDK RSC 변경 사항
이 섹션의 변경 사항에는 사용 가능한 codemod가 없습니다. 코드를 수동으로 검토하고 업데이트하세요.
제거된 render 함수
AI SDK RSC 3.0의 render 함수가 제거되었습니다.
streamUI 함수를 대신 사용하거나 AI SDK UI로 전환하세요.
import { render } from '@ai-sdk/rsc';
import { streamUI } from '@ai-sdk/rsc';
AI SDK UI 변경 사항
제거된 Svelte, Vue, SolidJS exports
이 codemod는
.ts와.tsx파일에서만 작동합니다. 다른 접미사가 있는 파일에 코드가 있다면 수동으로 검토하고 업데이트하세요.
ai 패키지는 더 이상 Svelte, Vue, SolidJS UI 통합을 export하지 않습니다.
@ai-sdk/svelte, @ai-sdk/vue, @ai-sdk/solid 패키지를 직접 설치해야 합니다.
import { useChat } from 'ai/svelte';
import { useChat } from '@ai-sdk/svelte';
제거된 experimental_StreamData
experimental_StreamData export가 제거되었습니다.
StreamData export를 대신 사용하세요.
import { experimental_StreamData } from 'ai';
import { StreamData } from 'ai';
useChat 훅
이 섹션의 변경 사항에는 사용 가능한 codemod가 없습니다. 코드를 수동으로 검토하고 업데이트하세요.
제거된 streamMode 설정
streamMode 옵션이 useChat 훅에서 제거되었습니다.
streamProtocol 매개변수를 대신 사용하세요.
const { messages } = useChat({
streamMode: 'text',
// ...
});
const { messages } = useChat({
streamProtocol: 'text',
// ...
});
roundtrip 설정이 maxSteps로 대체됨
다음 옵션들이 useChat 훅에서 제거되었습니다:
experimental_maxAutomaticRoundtripsmaxAutomaticRoundtripsmaxToolRoundtrips
maxSteps 옵션을 대신 사용하세요.
maxSteps의 값은 roundtrips + 1과 같습니다.
const { messages } = useChat({
experimental_maxAutomaticRoundtrips: 2,
// or maxAutomaticRoundtrips
// or maxToolRoundtrips
// ...
});
const { messages } = useChat({
maxSteps: 3, // 2 roundtrips + 1
// ...
});
제거된 options 설정
useChat 훅의 options 매개변수가 제거되었습니다.
headers와 body 매개변수를 대신 사용하세요.
const { messages } = useChat({
options: {
headers: {
'X-Custom-Header': 'value',
},
},
// ...
});
const { messages } = useChat({
headers: {
'X-Custom-Header': 'value',
},
// ...
});
제거된 experimental_addToolResult 메서드
experimental_addToolResult 메서드가 useChat 훅에서 제거되었습니다.
addToolResult 메서드를 대신 사용하세요.
const { messages, experimental_addToolResult } = useChat({
// ...
});
const { messages, addToolResult } = useChat({
// ...
});
keepLastMessageOnError 기본값이 true로 변경되고 옵션이 지원 중단됨
keepLastMessageOnError 옵션이 기본값 true로 변경되었습니다.
이 옵션은 다음 메이저 릴리스에서 제거될 예정입니다.
const { messages } = useChat({
keepLastMessageOnError: true,
// ...
});
const { messages } = useChat({
// ...
});
useCompletion 훅
이 섹션의 변경 사항에는 사용 가능한 codemod가 없습니다. 코드를 수동으로 검토하고 업데이트하세요.
제거된 streamMode 설정
streamMode 옵션이 useCompletion 훅에서 제거되었습니다.
streamProtocol 매개변수를 대신 사용하세요.
const { text } = useCompletion({
streamMode: 'text',
// ...
});
const { text } = useCompletion({
streamProtocol: 'text',
// ...
});
useAssistant 훅
제거된 experimental_useAssistant export
experimental_useAssistant export가 useAssistant 훅에서 제거되었습니다.
useAssistant 훅을 직접 사용하세요.
import { experimental_useAssistant } from '@ai-sdk/react';
import { useAssistant } from '@ai-sdk/react';
AssistantResponse에서 제거된 threadId와 messageId
이 변경에는 사용 가능한 codemod가 없습니다. 코드를 수동으로 검토하고 업데이트하세요.
threadId와 messageId 매개변수가 AssistantResponse 함수에서 제거되었습니다.
외부 스코프의 threadId와 messageId 변수를 대신 사용하세요.
return AssistantResponse(
{ threadId: myThreadId, messageId: myMessageId },
async ({ forwardStream, sendDataMessage, threadId, messageId }) => {
// use threadId and messageId here
},
);
return AssistantResponse(
{ threadId: myThreadId, messageId: myMessageId },
async ({ forwardStream, sendDataMessage }) => {
// use myThreadId and myMessageId here
},
);
제거된 experimental_AssistantResponse export
이 변경에는 사용 가능한 codemod가 없습니다. 코드를 수동으로 검토하고 업데이트하세요.
experimental_AssistantResponse export가 제거되었습니다.
AssistantResponse 함수를 직접 사용하세요.
import { experimental_AssistantResponse } from 'ai';
import { AssistantResponse } from 'ai';
experimental_useObject 훅
이 섹션의 변경 사항에는 사용 가능한 codemod가 없습니다. 코드를 수동으로 검토하고 업데이트하세요.
setInput 헬퍼가 experimental_useObject 훅에서 제거되었습니다.
submit 헬퍼를 대신 사용하세요.
const { object, setInput } = useObject({
// ...
});
const { object, submit } = useObject({
// ...
});
AI SDK 오류 (AI SDK Errors)
제거된 isXXXError 정적 메서드
isXXXError 정적 메서드가 AI SDK 오류에서 제거되었습니다.
해당 오류 클래스의 isInstance 메서드를 대신 사용하세요.
import { APICallError } from 'ai';
APICallError.isAPICallError(error);
import { APICallError } from 'ai';
APICallError.isInstance(error);
제거된 toJSON 메서드
이 변경에는 사용 가능한 codemod가 없습니다. 코드를 수동으로 검토하고 업데이트하세요.
toJSON 메서드가 AI SDK 오류에서 제거되었습니다.
AI SDK 2.x 레거시 변경 사항
이 섹션의 변경 사항에는 사용 가능한 codemod가 없습니다. 코드를 수동으로 검토하고 업데이트하세요.
제거된 2.x 레거시 프로바이더
AI SDK 2.x의 레거시 프로바이더가 제거되었습니다. 새 AI SDK 프로바이더 아키텍처를 사용하세요.
제거된 2.x 레거시 함수 및 도구 호출
레거시 function_call 및 tools 옵션이 useChat와 Message에서 제거되었습니다.
Message 타입의 name 속성이 제거되었습니다.
AI SDK Core 도구 호출을 대신 사용하세요.
제거된 2.x 프롬프트 헬퍼
메시지 프롬프트를 구성하기 위한 프롬프트 헬퍼는 AI SDK 프로바이더 아키텍처와 함께 더 이상 필요하지 않아 제거되었습니다.
제거된 2.x AIStream
AIStream 함수와 관련 exports가 제거되었습니다.
streamText 함수와 그 toDataStream() 메서드를 대신 사용하세요.
제거된 2.x StreamingTextResponse
StreamingTextResponse 함수가 제거되었습니다.
streamText 함수와 그 toDataStreamResponse() 메서드를 대신 사용하세요.
제거된 2.x streamToResponse
streamToResponse 함수가 제거되었습니다.
streamText 함수와 그 pipeDataStreamToResponse() 메서드를 대신 사용하세요.
제거된 2.x RSC Tokens 스트리밍
2.x의 레거시 Tokens RSC 스트리밍이 제거되었습니다.
Tokens는 AI SDK RSC 이전에 구현되었으며 더 이상 필요하지 않습니다.
Codemod 표 (Codemod Table)
다음 표는 AI SDK 4.0 업그레이드 과정의 codemod 가용성을 나열합니다. upgrade codemod 명령이 이 모든 것을 실행해줍니다. 이 목록은 어떤 마이그레이션에 자동화가 있는지 파악하기 위해 제공됩니다. codemod 서브셋을 실행하려면 codemod 이름을 찾는 데도 유용할 수 있습니다. 자세한 내용은 Codemods 섹션을 참고하세요.
| 변경 | Codemod |
|---|---|
| 프로바이더 변경 사항 | |
| baseUrl 옵션 제거 | v4/replace-baseurl |
| Anthropic 프로바이더 | |
| Anthropic 페이사드 제거 | v4/remove-anthropic-facade |
| topK 설정 제거 | N/A |
| Google Generative AI 프로바이더 | |
| Google 페이사드 제거 | v4/remove-google-facade |
| topK 설정 제거 | N/A |
| Google Vertex 프로바이더 | |
| topK 설정 제거 | N/A |
| Mistral 프로바이더 | |
| Mistral 페이사드 제거 | v4/remove-mistral-facade |
| OpenAI 프로바이더 | |
| OpenAI 페이사드 제거 | v4/remove-openai-facade |
| LangChain 어댑터 | |
| toAIStream 제거 | v4/replace-langchain-toaistream |
| AI SDK Core 변경 사항 | |
| streamText가 즉시 반환 | v4/remove-await-streamtext |
| streamObject가 즉시 반환 | v4/remove-await-streamobject |
| roundtrips 제거 | v4/replace-roundtrips-with-maxsteps |
| nanoid export 제거 | v4/replace-nanoid |
| 생성 ID의 기본 크기 증가 | N/A |
| ExperimentalMessage 타입 제거 | v4/remove-experimental-message-types |
| ExperimentalTool 타입 제거 | v4/remove-experimental-tool |
| 실험적 AI 함수 exports 제거 | v4/remove-experimental-ai-fn-exports |
| streamText에서 AI-stream 관련 메서드 제거 | v4/remove-ai-stream-methods-from-stream-text-result |
| "formatStreamPart"가 "formatDataStreamPart"로 이름 변경 | v4/rename-format-stream-part |
| "parseStreamPart"가 "parseDataStreamPart"로 이름 변경 | v4/rename-parse-stream-part |
| TokenUsage, CompletionTokenUsage, EmbeddingTokenUsage 타입 이름 변경 | v4/replace-token-usage-types |
| 지원 중단 텔레메트리 데이터 제거 | N/A |
| 프로바이더 레지스트리 | |
| → experimental_Provider, experimental_ProviderRegistry, experimental_ModelRegistry 제거 | v4/remove-deprecated-provider-registry-exports |
| → experimental_createModelRegistry 함수 제거 | N/A |
| 결과에서 rawResponse 제거 | N/A |
| pipeDataStreamToResponse와 toDataStreamResponse에서 init 옵션 제거 | N/A |
| generateText와 streamText에서 responseMessages 제거 | N/A |
| experimental_continuationSteps 옵션 제거 | v4/replace-continuation-steps |
| LanguageModelResponseMetadataWithHeaders 타입 제거 | v4/remove-metadata-with-headers |
| streamText warnings 결과가 Promise로 변경 | N/A |
| streamObject warnings 결과가 Promise로 변경 | N/A |
| simulateReadableStream values가 chunks로 이름 변경 | N/A |
| AI SDK RSC 변경 사항 | |
| render 함수 제거 | N/A |
| AI SDK UI 변경 사항 | |
| Svelte, Vue, SolidJS exports 제거 | v4/rewrite-framework-imports |
| experimental_StreamData 제거 | v4/remove-experimental-streamdata |
| useChat 훅 | |
| streamMode 설정 제거 | N/A |
| roundtrip 설정이 maxSteps로 대체 | v4/replace-roundtrips-with-maxsteps |
| options 설정 제거 | N/A |
| experimental_addToolResult 메서드 제거 | N/A |
| keepLastMessageOnError 기본값이 true로 변경되고 지원 중단됨 | N/A |
| useCompletion 훅 | |
| streamMode 설정 제거 | N/A |
| useAssistant 훅 | |
| experimental_useAssistant export 제거 | v4/remove-experimental-useassistant |
| AssistantResponse에서 threadId와 messageId 제거 | N/A |
| experimental_AssistantResponse export 제거 | N/A |
| experimental_useObject 훅 | |
| setInput 헬퍼 제거 | N/A |
| AI SDK 오류 | |
| isXXXError 정적 메서드 제거 | v4/remove-isxxxerror |
| toJSON 메서드 제거 | N/A |
| AI SDK 2.x 레거시 변경 사항 | |
| 2.x 레거시 프로바이더 제거 | N/A |
| 2.x 레거시 함수 및 도구 호출 제거 | N/A |
| 2.x 프롬프트 헬퍼 제거 | N/A |
| 2.x AIStream 제거 | N/A |
| 2.x StreamingTextResponse 제거 | N/A |
| 2.x streamToResponse 제거 | N/A |
| 2.x RSC Tokens 스트리밍 제거 | N/A |