`defaultInstructionsMiddleware()`
defaultInstructionsMiddleware()
defaultInstructionsMiddleware는 이미 시스템 메시지를 포함하지 않는 언어 모델 호출에 기본 지침을 적용해요. 호출 수준 instructions가 우선하도록 하면서 재사용 가능한 모델 동작을 구성하는 데 유용해요.
출처: 문서
본문
Import
import { defaultInstructionsMiddleware } from "ai"
API 시그니처 (API Signature)
function defaultInstructionsMiddleware(options: {
instructions: Instructions;
}): LanguageModelMiddleware;
파라미터 (Parameters)
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
instructions |
string | SystemModelMessage | Array<SystemModelMessage> |
필수 | 호출에 시스템 메시지가 이미 없을 때 앞에 붙일 기본 지침. |
반환 (Returns)
다음을 수행하는 LanguageModelMiddleware를 반환해요:
- 시스템 메시지가 없는 호출 앞에 구성된 지침을 붙임.
- 지침 수준
providerOptions를 보존. - 시스템 메시지를 포함한 호출은 변경하지 않고 남겨서, 호출 수준 지침이 우선.
- 비스트리밍 및 스트리밍 언어 모델 호출 모두에 적용.
사용 예시 (Usage Example)
import {
defaultInstructionsMiddleware,
generateText,
wrapLanguageModel,
} from 'ai';
const model = wrapLanguageModel({
model: __MODEL__,
middleware: defaultInstructionsMiddleware({
instructions: 'You are a concise technical assistant.',
}),
});
const defaultResult = await generateText({
model,
prompt: 'Explain HTTP caching.',
});
const overriddenResult = await generateText({
model,
instructions: 'Explain concepts for a complete beginner.',
prompt: 'Explain HTTP caching.',
});
SystemModelMessage를 사용하면 기본 지침에 provider 옵션을 붙일 수 있어요:
const model = wrapLanguageModel({
model: __MODEL__,
middleware: defaultInstructionsMiddleware({
instructions: {
role: 'system',
content: 'You are a concise technical assistant.',
providerOptions: {
anthropic: {
cacheControl: { type: 'ephemeral' },
},
},
},
}),
});
참고: 이 미들웨어는 기본값을 제공할 뿐 강제 지침은 아니에요. 정규화된 프롬프트의 모든 시스템 메시지가 기본값을 억제해요. 신뢰할 수 없는 시스템 메시지가 구성된 기본값을 재정의할 수 있으므로,
allowSystemInMessages는 신뢰할 수 있는 메시지 기록에만 사용하세요.