import { Request } from "express"; import { APIFormat } from "../../../../shared/key-management"; import { LLMService } from "../../../../shared/models"; import { RequestPreprocessor } from "../index"; export const setApiFormat = (api: { /** * The API format the user made the request in and expects the response to be * in. */ inApi: Request["inboundApi"]; /** * The API format the proxy will make the request in and expects the response * to be in. If different from `inApi`, the proxy will transform the user's * request body to this format, and will transform the response body or stream * events from this format. */ outApi: APIFormat; /** * The service the request will be sent to, which determines authentication * and possibly the streaming transport. */ service: LLMService; }): RequestPreprocessor => { return function configureRequestApiFormat(req) { req.inboundApi = api.inApi; req.outboundApi = api.outApi; req.service = api.service; }; };