ai
Version:
AI SDK by Vercel - The AI Toolkit for TypeScript and JavaScript
31 lines (28 loc) • 913 B
text/typescript
import { JSONSchema7 } from '@ai-sdk/provider';
const DEFAULT_SCHEMA_PREFIX = 'JSON schema:';
const DEFAULT_SCHEMA_SUFFIX =
'You MUST answer with a JSON object that matches the JSON schema above.';
const DEFAULT_GENERIC_SUFFIX = 'You MUST answer with JSON.';
export function injectJsonInstruction({
prompt,
schema,
schemaPrefix = schema != null ? DEFAULT_SCHEMA_PREFIX : undefined,
schemaSuffix = schema != null
? DEFAULT_SCHEMA_SUFFIX
: DEFAULT_GENERIC_SUFFIX,
}: {
prompt?: string;
schema?: JSONSchema7;
schemaPrefix?: string;
schemaSuffix?: string;
}): string {
return [
prompt != null && prompt.length > 0 ? prompt : undefined,
prompt != null && prompt.length > 0 ? '' : undefined, // add a newline if prompt is not null
schemaPrefix,
schema != null ? JSON.stringify(schema) : undefined,
schemaSuffix,
]
.filter(line => line != null)
.join('\n');
}