zen: new inference
This commit is contained in:
@@ -210,39 +210,44 @@ export async function handler(
|
|||||||
)
|
)
|
||||||
logger.debug("REQUEST URL: " + reqUrl)
|
logger.debug("REQUEST URL: " + reqUrl)
|
||||||
logger.debug("REQUEST: " + reqBody.substring(0, 300) + "...")
|
logger.debug("REQUEST: " + reqBody.substring(0, 300) + "...")
|
||||||
const res = await fetchWith429Retry(reqUrl, {
|
const isNewInference = providerInfo.id.startsWith("console.") || providerInfo.id.startsWith("console-go.")
|
||||||
method: "POST",
|
const res = await fetchWith429Retry(
|
||||||
headers: (() => {
|
reqUrl,
|
||||||
const headers = new Headers(input.request.headers)
|
{
|
||||||
providerInfo.modifyHeaders(headers, providerInfo.apiKey, stickyId)
|
method: "POST",
|
||||||
Object.entries(providerInfo.headerModifier ?? {}).forEach(([k, v]) => {
|
headers: (() => {
|
||||||
if (v === "$ip") return headers.set(k, ip)
|
const headers = new Headers(input.request.headers)
|
||||||
if (v === "$caller") return headers.set(k, stickyId)
|
providerInfo.modifyHeaders(headers, providerInfo.apiKey, stickyId)
|
||||||
if (v === "$session") return headers.set(k, sessionId)
|
Object.entries(providerInfo.headerModifier ?? {}).forEach(([k, v]) => {
|
||||||
if (v === "$model") return headers.set(k, model)
|
if (v === "$ip") return headers.set(k, ip)
|
||||||
if (v === "$request") return headers.set(k, requestId)
|
if (v === "$caller") return headers.set(k, stickyId)
|
||||||
if (v === "$project") return headers.set(k, projectId)
|
if (v === "$session") return headers.set(k, sessionId)
|
||||||
if (v === "$workspace") {
|
if (v === "$model") return headers.set(k, model)
|
||||||
if (authInfo?.workspaceID) headers.set(k, authInfo.workspaceID)
|
if (v === "$request") return headers.set(k, requestId)
|
||||||
return
|
if (v === "$project") return headers.set(k, projectId)
|
||||||
}
|
if (v === "$workspace") {
|
||||||
headers.set(k, v)
|
if (authInfo?.workspaceID) headers.set(k, authInfo.workspaceID)
|
||||||
})
|
return
|
||||||
headers.delete("host")
|
}
|
||||||
headers.delete("content-length")
|
headers.set(k, v)
|
||||||
headers.delete("x-opencode-request")
|
})
|
||||||
headers.delete("x-opencode-session")
|
headers.delete("host")
|
||||||
headers.delete("x-opencode-project")
|
headers.delete("content-length")
|
||||||
headers.delete("x-opencode-client")
|
headers.delete("x-opencode-request")
|
||||||
return headers
|
headers.delete("x-opencode-session")
|
||||||
})(),
|
headers.delete("x-opencode-project")
|
||||||
body: reqBody,
|
headers.delete("x-opencode-client")
|
||||||
// Propagate caller disconnects to the upstream provider request so
|
return headers
|
||||||
// abandoned Console requests do not leave orphaned inference work open.
|
})(),
|
||||||
signal: input.request.signal,
|
body: reqBody,
|
||||||
})
|
// Propagate caller disconnects to the upstream provider request so
|
||||||
|
// abandoned Console requests do not leave orphaned inference work open.
|
||||||
|
signal: input.request.signal,
|
||||||
|
},
|
||||||
|
{ count: isNewInference ? MAX_429_RETRIES : 0 },
|
||||||
|
)
|
||||||
|
|
||||||
if (providerInfo.id.startsWith("console.") || providerInfo.id.startsWith("console-go.")) {
|
if (isNewInference) {
|
||||||
const resEndpointId = res.headers.get("x-opencode-endpoint-id")
|
const resEndpointId = res.headers.get("x-opencode-endpoint-id")
|
||||||
const resEndpointModelId = res.headers.get("x-opencode-upstream-model-id")
|
const resEndpointModelId = res.headers.get("x-opencode-upstream-model-id")
|
||||||
if (resEndpointId && resEndpointModelId)
|
if (resEndpointId && resEndpointModelId)
|
||||||
|
|||||||
Reference in New Issue
Block a user