ai-functions
Version:
A powerful TypeScript library for building AI-powered applications with template literals and structured outputs
33 lines • 1.19 kB
JavaScript
import { streamObject } from 'ai';
import { convertToOpenAIModel } from '@/converters';
import { DEFAULT_LIST_OPTIONS } from './constants';
import { generateListPrompt } from './prompt';
import { createStreamSchema } from './schemas';
export const createListStream = (options) => {
return async function* listStream(strings, ...values) {
const prompt = generateListPrompt(strings, ...values);
const model = convertToOpenAIModel(options.model || DEFAULT_LIST_OPTIONS.model);
const schema = createStreamSchema();
const { elementStream } = await streamObject({
model,
output: 'array',
schema,
prompt,
system: options.system,
seed: options.seed,
temperature: 0.7,
maxTokens: 2000, // Increased for better completion
retry: {
attempts: 3,
delay: 1000,
factor: 2 // Exponential backoff
}
});
for await (const element of elementStream) {
if (element?.item) {
yield element.item;
}
}
};
};
//# sourceMappingURL=stream.js.map