@@ -141,20 +141,34 @@ export async function handler(
141141 )
142142 validateModelSettings ( billingSource , authInfo )
143143 updateProviderKey ( authInfo , providerInfo )
144- logger . metric ( { provider : providerInfo . id } )
144+ logger . metric ( {
145+ provider : providerInfo . id ,
146+ "provider.model" : providerInfo . model ,
147+ } )
145148
146149 const startTimestamp = Date . now ( )
147150 const reqUrl = providerInfo . modifyUrl ( providerInfo . api , isStream )
148151 const reqBody = JSON . stringify (
149152 providerInfo . modifyBody ( {
150153 ...createBodyConverter ( opts . format , providerInfo . format ) ( body ) ,
151154 model : providerInfo . model ,
152- ...providerInfo . payloadModifier ,
153- ...Object . fromEntries (
154- Object . entries ( providerInfo . payloadMappings ?? { } )
155- . map ( ( [ k , v ] ) => [ k , input . request . headers . get ( v ) ] )
156- . filter ( ( [ _k , v ] ) => ! ! v ) ,
157- ) ,
155+ ...( ( ) => {
156+ const replacer = ( obj : Record < string , any > ) : Record < string , any > =>
157+ Object . fromEntries (
158+ Object . entries ( obj ) . flatMap ( ( [ k , v ] ) => {
159+ if ( Array . isArray ( v ) ) return [ [ k , v ] ]
160+ if ( typeof v === "object" ) return [ [ k , replacer ( v ) ] ]
161+ if ( v === "$ip" ) return [ [ k , ip ] ]
162+ if ( v === "$workspace" ) return authInfo ?. workspaceID ? [ [ k , authInfo ?. workspaceID ] ] : [ ]
163+ if ( v . startsWith ( "$header." ) ) {
164+ const headerValue = input . request . headers . get ( v . slice ( 8 ) )
165+ return headerValue ? [ [ k , headerValue ] ] : [ ]
166+ }
167+ return [ [ k , v ] ]
168+ } ) ,
169+ )
170+ return replacer ( providerInfo . payloadModifier ?? { } )
171+ } ) ( ) ,
158172 } ) ,
159173 )
160174 logger . debug ( "REQUEST URL: " + reqUrl )
@@ -514,7 +528,6 @@ export async function handler(
514528 reqModel,
515529 providerModel : modelProvider . model ,
516530 adjustCacheUsage : providerProps . adjustCacheUsage ,
517- safetyIdentifier : modelProvider . safetyIdentifier ? ip : undefined ,
518531 workspaceID : authInfo ?. workspaceID ,
519532 }
520533 if ( format === "anthropic" ) return anthropicHelper ( opts )
0 commit comments