`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는 신뢰할 수 있는 메시지 기록에만 사용하세요.

더 알아보기 (Learn more)