Failed to parse line: "gpt-3.5-turbo-0613","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"喷"},"logprobs":null,"finish_reason":null}]}
window.console.error @ app-index.js:32
overrideMethod @ console.js:213
eval @ chatAI.tsx:169
processResult @ chatAI.tsx:160
await in processResult (async)
sendMessageToOpenAI @ chatAI.tsx:89
await in sendMessageToOpenAI (async)
paper2AI @ QuillEditor.tsx:259
Show 1 more frame
Show less
app-index.js:32 Error: SyntaxError: Unexpected non-whitespace character after JSON at position 20 (line 1 column 21)
at JSON.parse (<anonymous>)
at eval (chatAI.tsx:167:23)
at Array.map (<anonymous>)
at processResult (chatAI.tsx:160:8)
at async sendMessageToOpenAI (chatAI.tsx:89:5)
window.console.error @ app-index.js:32
overrideMethod @ console.js:213
eval @ chatAI.tsx:170
processResult @ chatAI.tsx:160
await in processResult (async)
sendMessageToOpenAI @ chatAI.tsx:89
await in sendMessageToOpenAI (async)
paper2AI @ QuillEditor.tsx:259
Show 1 more frame
Show less
app-index.js:32 Failed to parse line: "gpt-3.5-turbo-0613","system_fingerprint":null,"choices":[{"index":0,"delta":{"content":"喷"},"logprobs":null,"finish_reason":null}]}
window.console.error @ app-index.js:32
overrideMethod @ console.js:213
eval @ chatAI.tsx:169
processResult @ chatAI.tsx:160
await in processResult (async)
sendMessageToOpenAI @ chatAI.tsx:89
await in sendMessageToOpenAI (async)
paper2AI @ QuillEditor.tsx:259
Show 1 more frame
Show less
app-index.js:32 Error: SyntaxError: Unexpected non-whitespace character after JSON at position 20 (line 1 column 21)
at JSON.parse (<anonymous>)
at eval (chatAI.tsx:167:23)
at Array.map (<anonymous>)
at processResult (chatAI.tsx:160:8)
at async sendMessageToOpenAI (chatAI.tsx:89:5)
window.console.error @ app-index.js:32
overrideMethod @ console.js:213
eval @ chatAI.tsx:170
processResult @ chatAI.tsx:160
await in processResult (async)
sendMessageToOpenAI @ chatAI.tsx:89
await in sendMessageToOpenAI (async)
paper2AI @ QuillEditor.tsx:259
Show 1 more frame
Show less
app-index.js:32 Failed to parse line: {"id":"chatcmpl-8lo60
window.console.error @ app-index.js:32
overrideMethod @ console.js:213
eval @ chatAI.tsx:169
processResult @ chatAI.tsx:160
await in processResult (async)
sendMessageToOpenAI @ chatAI.tsx:89
await in sendMessageToOpenAI (async)
paper2AI @ QuillEditor.tsx:259
Show 1 more frame
Show less
app-index.js:32 Error: SyntaxError: Unterminated string in JSON at position 21 (line 1 column 22)
at JSON.parse (<anonymous>)
at eval (chatAI.tsx:167:23)
at Array.map (<anonymous>)
at processResult (chatAI.tsx:160:8)
at async sendMessageToOpenAI (chatAI.tsx:89:5)
window.console.error @ app-index.js:32
overrideMethod @ console.js:213
eval @ chatAI.tsx:170
processResult @ chatAI.tsx:160
await in processResult (async)
sendMessageToOpenAI @ chatAI.tsx:89
await in sendMessageToOpenAI (async)
paper2AI @ QuillEditor.tsx:259
Show 1 more frame
Show less
app-index.js:32 Failed to parse line: {"id":"chatcmpl-8lo60
window.console.error @ app-index.js:32
overrideMethod @ console.js:213
eval @ chatAI.tsx:169
processResult @ chatAI.tsx:160
await in processResult (async)
sendMessageToOpenAI @ chatAI.tsx:89
await in sendMessageToOpenAI (async)
paper2AI @ QuillEditor.tsx:259
Show 1 more frame
Show less
app-index.js:32 Error: SyntaxError: Unterminated string in JSON at position 21 (line 1 column 22)
at JSON.parse (<anonymous>)
at eval (chatAI.tsx:167:23)
at Array.map (<anonymous>)
at processResult (chatAI.tsx:160:8)
at async sendMessageToOpenAI (chatAI.tsx:89:5)
window.console.error @ app-index.js:32
overrideMethod @ console.js:213
eval @ chatAI.tsx:170
processResult @ chatAI.tsx:160
await in processResult (async)
sendMessageToOpenAI @ chatAI.tsx:89
await in sendMessageToOpenAI (async)
paper2AI @ QuillEditor.tsx:259
Show 1 more frame
Show less
app-index.js:32 Failed to parse line: {"id":"chatcmpl-8lo60
window.console.error @ app-index.js:32
overrideMethod @ console.js:213
eval @ chatAI.tsx:169
processResult @ chatAI.tsx:160
await in processResult (async)
sendMessageToOpenAI @ chatAI.tsx:89
await in sendMessageToOpenAI (async)
paper2AI @ QuillEditor.tsx:259
Show 1 more frame
Show less
app-index.js:32 Error: SyntaxError: Unterminated string in JSON at position 21 (line 1 column 22)
at JSON.parse (<anonymous>)
at eval (chatAI.tsx:167:23)
at Array.map (<anonymous>)
at processResult (chatAI.tsx:160:8)
at async sendMessageToOpenAI (chatAI.tsx:89:5)
代码:
const sendMessageToOpenAI = async (
content: string,
editor: Editor,
selectedModel: "gpt3.5",
apiKey: string,
upsreamUrl: string,
prompt?: string
) => {
//识别应该使用的模型
let model = selectedModel === "gpt3.5" ? "gpt-3.5-turbo" : "gpt-4";
console.log("upsreamUrl", upsreamUrl);
// 设置API请求参数
const requestOptions = {
method: "POST",
headers: {
"Content-Type": "application/json",
"Upstream-Url": upsreamUrl,
Authorization:
"Bearer " +
(isValidApiKey(apiKey)
? apiKey
: process.env.NEXT_PUBLIC_OPENAI_API_KEY),
},
body: JSON.stringify({
model: model,
stream: true,
messages: [
{
role: "system",
content:
prompt ||
`作为论文写作助手,您的主要任务是根据用户提供的研究主题和上下文,以及相关的研究论文,来撰写和完善学术论文。在撰写过程中,请注意以下要点:
1.学术格式:请采用标准的学术论文格式进行写作,包括清晰的段落结构、逻辑严谨的论点展开,以及恰当的专业术语使用。
2.文献引用:只引用与主题紧密相关的论文。在引用文献时,文末应使用方括号内的数字来标注引用来源,如 [1]。请确保每个引用在文章中都有其对应的编号,*无需在文章末尾提供参考文献列表*。
3.忽略无关文献:对于与主题无关的论文,请不要包含在您的写作中。只关注对理解和阐述主题有实质性帮助的资料。
4.来源明确:在文章中,清楚地指出每个引用的具体来源。引用的信息应准确无误,确保读者能够追溯到原始文献。
5.使用用户所说的语言完成回答,不超过三百字
6.只能对给出的文献进行引用,坚决不能虚构文献。
返回格式举例:
在某个方面,某论文实现了以下突破...[1],在另一篇论文中,研究了...[2]`,
},
{
role: "user",
content: content,
},
],
}),
};
console.log("请求的内容\n", content);
// 发送API请求
let response;
try {
response = await fetch(process.env.NEXT_PUBLIC_AI_URL, requestOptions);
if (!response.ok) {
throw new Error("Server responded with an error");
}
const reader = response.body.getReader();
const decoder = new TextDecoder();
await processResult(reader, decoder, editor);
convertToSuperscript(editor);
updateBracketNumbersInDeltaKeepSelection(editor);
} catch (error) {
console.error("Error:", error);
// 如果有响应,返回响应的原始内容
if (response) {
const rawResponse = await response.text();
throw new Error(`Error: ${error.message}, Response: ${rawResponse}`);
}
// 如果没有响应,只抛出错误
throw error;
}
};