mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-08 22:08:26 +00:00
refactor(gateway): share openai response text extraction
This commit is contained in:
@@ -141,6 +141,18 @@ function coerceRequest(val: unknown): OpenAiChatCompletionRequest {
|
|||||||
return val as OpenAiChatCompletionRequest;
|
return val as OpenAiChatCompletionRequest;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function resolveAgentResponseText(result: unknown): string {
|
||||||
|
const payloads = (result as { payloads?: Array<{ text?: string }> } | null)?.payloads;
|
||||||
|
if (!Array.isArray(payloads) || payloads.length === 0) {
|
||||||
|
return "No response from OpenClaw.";
|
||||||
|
}
|
||||||
|
const content = payloads
|
||||||
|
.map((p) => (typeof p.text === "string" ? p.text : ""))
|
||||||
|
.filter(Boolean)
|
||||||
|
.join("\n\n");
|
||||||
|
return content || "No response from OpenClaw.";
|
||||||
|
}
|
||||||
|
|
||||||
export async function handleOpenAiHttpRequest(
|
export async function handleOpenAiHttpRequest(
|
||||||
req: IncomingMessage,
|
req: IncomingMessage,
|
||||||
res: ServerResponse,
|
res: ServerResponse,
|
||||||
@@ -197,14 +209,7 @@ export async function handleOpenAiHttpRequest(
|
|||||||
deps,
|
deps,
|
||||||
);
|
);
|
||||||
|
|
||||||
const payloads = (result as { payloads?: Array<{ text?: string }> } | null)?.payloads;
|
const content = resolveAgentResponseText(result);
|
||||||
const content =
|
|
||||||
Array.isArray(payloads) && payloads.length > 0
|
|
||||||
? payloads
|
|
||||||
.map((p) => (typeof p.text === "string" ? p.text : ""))
|
|
||||||
.filter(Boolean)
|
|
||||||
.join("\n\n")
|
|
||||||
: "No response from OpenClaw.";
|
|
||||||
|
|
||||||
sendJson(res, 200, {
|
sendJson(res, 200, {
|
||||||
id: runId,
|
id: runId,
|
||||||
@@ -325,14 +330,7 @@ export async function handleOpenAiHttpRequest(
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
const payloads = (result as { payloads?: Array<{ text?: string }> } | null)?.payloads;
|
const content = resolveAgentResponseText(result);
|
||||||
const content =
|
|
||||||
Array.isArray(payloads) && payloads.length > 0
|
|
||||||
? payloads
|
|
||||||
.map((p) => (typeof p.text === "string" ? p.text : ""))
|
|
||||||
.filter(Boolean)
|
|
||||||
.join("\n\n")
|
|
||||||
: "No response from OpenClaw.";
|
|
||||||
|
|
||||||
sawAssistantDelta = true;
|
sawAssistantDelta = true;
|
||||||
writeSse(res, {
|
writeSse(res, {
|
||||||
|
|||||||
Reference in New Issue
Block a user