mirror of
https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web.git
synced 2025-06-08 05:40:38 +09:00
修改: app/api/bedrock.ts
修改: app/client/platforms/bedrock.ts
This commit is contained in:
parent
f0c23cc6aa
commit
5d5456c1c5
@ -46,6 +46,7 @@ export interface ConverseRequest {
|
|||||||
description?: string;
|
description?: string;
|
||||||
input_schema: any;
|
input_schema: any;
|
||||||
}[];
|
}[];
|
||||||
|
stream?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
function supportsToolUse(modelId: string): boolean {
|
function supportsToolUse(modelId: string): boolean {
|
||||||
@ -188,6 +189,30 @@ export async function handle(
|
|||||||
throw new Error("No stream in response");
|
throw new Error("No stream in response");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If stream is false, accumulate the response and return as JSON
|
||||||
|
console.log("Body.stream==========" + body.stream);
|
||||||
|
if (body.stream === false) {
|
||||||
|
let fullResponse = {
|
||||||
|
content: "",
|
||||||
|
};
|
||||||
|
|
||||||
|
const responseStream =
|
||||||
|
response.stream as AsyncIterable<ConverseStreamOutput>;
|
||||||
|
for await (const event of responseStream) {
|
||||||
|
if (
|
||||||
|
"contentBlockDelta" in event &&
|
||||||
|
event.contentBlockDelta?.delta &&
|
||||||
|
"text" in event.contentBlockDelta.delta &&
|
||||||
|
event.contentBlockDelta.delta.text
|
||||||
|
) {
|
||||||
|
fullResponse.content += event.contentBlockDelta.delta.text;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return NextResponse.json(fullResponse);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Otherwise, return streaming response
|
||||||
const stream = new ReadableStream({
|
const stream = new ReadableStream({
|
||||||
async start(controller) {
|
async start(controller) {
|
||||||
try {
|
try {
|
||||||
|
@ -38,9 +38,11 @@ export class BedrockApi implements LLMApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
extractMessage(res: any) {
|
extractMessage(res: any) {
|
||||||
console.log("[Response] claude response: ", res);
|
console.log("[Response] Bedrock not stream response: ", res);
|
||||||
|
if (res.error) {
|
||||||
return res?.content?.[0]?.text;
|
return "```\n" + JSON.stringify(res, null, 4) + "\n```";
|
||||||
|
}
|
||||||
|
return res?.content ?? res;
|
||||||
}
|
}
|
||||||
|
|
||||||
async chat(options: ChatOptions): Promise<void> {
|
async chat(options: ChatOptions): Promise<void> {
|
||||||
@ -144,6 +146,7 @@ export class BedrockApi implements LLMApi {
|
|||||||
topP: modelConfig.top_p,
|
topP: modelConfig.top_p,
|
||||||
stopSequences: [],
|
stopSequences: [],
|
||||||
},
|
},
|
||||||
|
stream: shouldStream,
|
||||||
};
|
};
|
||||||
|
|
||||||
const conversePath = `${ApiPath.Bedrock}/converse`;
|
const conversePath = `${ApiPath.Bedrock}/converse`;
|
||||||
|
Loading…
Reference in New Issue
Block a user