summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--packages/console/app/src/routes/zen/util/handler.ts29
-rw-r--r--packages/console/app/src/routes/zen/util/provider/openai-compatible.ts3
-rw-r--r--packages/console/app/src/routes/zen/util/provider/openai.ts5
-rw-r--r--packages/console/app/src/routes/zen/util/provider/provider.ts1
-rw-r--r--packages/console/core/src/model.ts1
5 files changed, 23 insertions, 16 deletions
diff --git a/packages/console/app/src/routes/zen/util/handler.ts b/packages/console/app/src/routes/zen/util/handler.ts
index c15197b6e..2f75668e6 100644
--- a/packages/console/app/src/routes/zen/util/handler.ts
+++ b/packages/console/app/src/routes/zen/util/handler.ts
@@ -141,7 +141,10 @@ export async function handler(
)
validateModelSettings(billingSource, authInfo)
updateProviderKey(authInfo, providerInfo)
- logger.metric({ provider: providerInfo.id })
+ logger.metric({
+ provider: providerInfo.id,
+ "provider.model": providerInfo.model,
+ })
const startTimestamp = Date.now()
const reqUrl = providerInfo.modifyUrl(providerInfo.api, isStream)
@@ -149,12 +152,23 @@ export async function handler(
providerInfo.modifyBody({
...createBodyConverter(opts.format, providerInfo.format)(body),
model: providerInfo.model,
- ...providerInfo.payloadModifier,
- ...Object.fromEntries(
- Object.entries(providerInfo.payloadMappings ?? {})
- .map(([k, v]) => [k, input.request.headers.get(v)])
- .filter(([_k, v]) => !!v),
- ),
+ ...(() => {
+ const replacer = (obj: Record<string, any>): Record<string, any> =>
+ Object.fromEntries(
+ Object.entries(obj).flatMap(([k, v]) => {
+ if (Array.isArray(v)) return [[k, v]]
+ if (typeof v === "object") return [[k, replacer(v)]]
+ if (v === "$ip") return [[k, ip]]
+ if (v === "$workspace") return authInfo?.workspaceID ? [[k, authInfo?.workspaceID]] : []
+ if (v.startsWith("$header.")) {
+ const headerValue = input.request.headers.get(v.slice(8))
+ return headerValue ? [[k, headerValue]] : []
+ }
+ return [[k, v]]
+ }),
+ )
+ return replacer(providerInfo.payloadModifier ?? {})
+ })(),
}),
)
logger.debug("REQUEST URL: " + reqUrl)
@@ -514,7 +528,6 @@ export async function handler(
reqModel,
providerModel: modelProvider.model,
adjustCacheUsage: providerProps.adjustCacheUsage,
- safetyIdentifier: modelProvider.safetyIdentifier ? ip : undefined,
workspaceID: authInfo?.workspaceID,
}
if (format === "anthropic") return anthropicHelper(opts)
diff --git a/packages/console/app/src/routes/zen/util/provider/openai-compatible.ts b/packages/console/app/src/routes/zen/util/provider/openai-compatible.ts
index 97b0abc64..e6dedb1a4 100644
--- a/packages/console/app/src/routes/zen/util/provider/openai-compatible.ts
+++ b/packages/console/app/src/routes/zen/util/provider/openai-compatible.ts
@@ -23,7 +23,7 @@ type Usage = {
}
}
-export const oaCompatHelper: ProviderHelper = ({ adjustCacheUsage, safetyIdentifier }) => ({
+export const oaCompatHelper: ProviderHelper = ({ adjustCacheUsage }) => ({
format: "oa-compat",
modifyUrl: (providerApi: string) => providerApi + "/chat/completions",
modifyHeaders: (headers: Headers, body: Record<string, any>, apiKey: string) => {
@@ -34,7 +34,6 @@ export const oaCompatHelper: ProviderHelper = ({ adjustCacheUsage, safetyIdentif
return {
...body,
...(body.stream ? { stream_options: { include_usage: true } } : {}),
- ...(safetyIdentifier ? { safety_identifier: safetyIdentifier } : {}),
}
},
createBinaryStreamDecoder: () => undefined,
diff --git a/packages/console/app/src/routes/zen/util/provider/openai.ts b/packages/console/app/src/routes/zen/util/provider/openai.ts
index bee1e01ec..5d61a903e 100644
--- a/packages/console/app/src/routes/zen/util/provider/openai.ts
+++ b/packages/console/app/src/routes/zen/util/provider/openai.ts
@@ -18,10 +18,7 @@ export const openaiHelper: ProviderHelper = ({ workspaceID }) => ({
modifyHeaders: (headers: Headers, body: Record<string, any>, apiKey: string) => {
headers.set("authorization", `Bearer ${apiKey}`)
},
- modifyBody: (body: Record<string, any>) => ({
- ...body,
- ...(workspaceID ? { safety_identifier: workspaceID } : {}),
- }),
+ modifyBody: (body: Record<string, any>) => body,
createBinaryStreamDecoder: () => undefined,
streamSeparator: "\n\n",
createUsageParser: () => {
diff --git a/packages/console/app/src/routes/zen/util/provider/provider.ts b/packages/console/app/src/routes/zen/util/provider/provider.ts
index ffb23f54c..86446bfd8 100644
--- a/packages/console/app/src/routes/zen/util/provider/provider.ts
+++ b/packages/console/app/src/routes/zen/util/provider/provider.ts
@@ -37,7 +37,6 @@ export type ProviderHelper = (input: {
reqModel: string
providerModel: string
adjustCacheUsage?: boolean
- safetyIdentifier?: string
workspaceID?: string
}) => {
format: ZenData.Format
diff --git a/packages/console/core/src/model.ts b/packages/console/core/src/model.ts
index 6281382d6..dc3febe05 100644
--- a/packages/console/core/src/model.ts
+++ b/packages/console/core/src/model.ts
@@ -40,7 +40,6 @@ export namespace ZenData {
disabled: z.boolean().optional(),
storeModel: z.string().optional(),
payloadModifier: z.record(z.string(), z.any()).optional(),
- safetyIdentifier: z.boolean().optional(),
}),
),
})