feat: add model complexity selection for batch processing tasks

This commit is contained in:
Manoj 2025-10-01 10:56:53 +05:30
parent e610336563
commit 2e94b2b284
2 changed files with 5 additions and 1 deletions

View File

@ -11,6 +11,7 @@ import {
type BatchResponse, type BatchResponse,
} from "../types"; } from "../types";
import { logger } from "~/services/logger.service"; import { logger } from "~/services/logger.service";
import { getModelForTask } from "~/lib/model.server";
export class OpenAIBatchProvider extends BaseBatchProvider { export class OpenAIBatchProvider extends BaseBatchProvider {
providerName = "openai"; providerName = "openai";
@ -40,13 +41,14 @@ export class OpenAIBatchProvider extends BaseBatchProvider {
try { try {
this.validateRequests(params.requests); this.validateRequests(params.requests);
const model = getModelForTask(params.modelComplexity || 'high');
// Convert requests to OpenAI batch format // Convert requests to OpenAI batch format
const batchRequests = params.requests.map((request, index) => ({ const batchRequests = params.requests.map((request, index) => ({
custom_id: request.customId, custom_id: request.customId,
method: "POST" as const, method: "POST" as const,
url: "/v1/chat/completions", url: "/v1/chat/completions",
body: { body: {
model: process.env.MODEL as string, model,
messages: request.systemPrompt messages: request.systemPrompt
? [ ? [
{ role: "system" as const, content: request.systemPrompt }, { role: "system" as const, content: request.systemPrompt },

View File

@ -3,6 +3,7 @@ import { z } from "zod";
export type BatchStatus = "pending" | "processing" | "completed" | "failed" | "cancelled"; export type BatchStatus = "pending" | "processing" | "completed" | "failed" | "cancelled";
export type ModelComplexity = 'high' | 'low';
export interface BatchRequest { export interface BatchRequest {
customId: string; customId: string;
messages: CoreMessage[]; messages: CoreMessage[];
@ -39,6 +40,7 @@ export interface CreateBatchParams<T = any> {
outputSchema?: z.ZodSchema<T>; outputSchema?: z.ZodSchema<T>;
maxRetries?: number; maxRetries?: number;
timeoutMs?: number; timeoutMs?: number;
modelComplexity?: ModelComplexity;
} }
export interface GetBatchParams { export interface GetBatchParams {