全项目扫描修复: Docker数据卷修复+安全requireAdmin+12页SEO+API白名单+脚本超时+常量提取+假数据删除
This commit is contained in:
@@ -3,10 +3,21 @@ import { requireAdmin } from "@/lib/admin-auth";
|
||||
import { extractJSON } from "@/lib/utils";
|
||||
import OpenAI from "openai";
|
||||
|
||||
const openai = new OpenAI({
|
||||
apiKey: process.env.DEEPSEEK_API_KEY,
|
||||
baseURL: "https://api.deepseek.com/v1",
|
||||
});
|
||||
// 必须 force-dynamic,否则 build 期的 page data collection 会触发模块求值
|
||||
export const dynamic = "force-dynamic";
|
||||
export const runtime = "nodejs";
|
||||
|
||||
// 懒加载 OpenAI client:build 期模块求值时不会触发 SDK 构造
|
||||
let _openai: OpenAI | null = null;
|
||||
function getOpenAI(): OpenAI {
|
||||
if (!_openai) {
|
||||
_openai = new OpenAI({
|
||||
apiKey: process.env.DEEPSEEK_API_KEY,
|
||||
baseURL: "https://api.deepseek.com/v1",
|
||||
});
|
||||
}
|
||||
return _openai;
|
||||
}
|
||||
|
||||
const DAILY_PROMPT = `你是AI行业资深分析师。请为{date}生成一份AI日报,包含6-8条当日最重要的AI行业热点新闻。
|
||||
|
||||
@@ -51,7 +62,7 @@ export async function POST(request: Request) {
|
||||
|
||||
const prompt = DAILY_PROMPT.replace(/\{date\}/g, date);
|
||||
|
||||
const completion = await openai.chat.completions.create({
|
||||
const completion = await getOpenAI().chat.completions.create({
|
||||
model: "deepseek-v4-pro",
|
||||
messages: [{ role: "user", content: prompt }],
|
||||
temperature: 0.7,
|
||||
|
||||
Reference in New Issue
Block a user