Compare commits

..

No commits in common. "e9f5b4f6d43604a479168d9b9d9856e935c9604a" and "af0601b1c4b4a2711198cfba1f37ffd2f4e2d12c" have entirely different histories.

2 changed files with 8 additions and 19 deletions

@ -1 +1 @@
Subproject commit 27bcc64b84f71f87af891950ca302fc9c55e106c
Subproject commit 6ab7939676e2ef9bb9ab07089e99b815023e92af

View File

@ -2703,10 +2703,10 @@ ${excerpt}
const bodyStart = fullContent.search(/^#{1,2}\s/m);
const excerpt = (bodyStart >= 0 ? fullContent.slice(bodyStart) : fullContent).slice(0, 4000);
const prompt = `以下の記事を分析して、JSONのみを返してくださいコードブロック不要\n\n{"summary":"1〜2文の日本語要約","tags":["タグ1","タグ2","タグ3"]}\n\n- summary: 読者が読む価値があるかを判断できる1〜2文\n- tags: 内容を表す具体的な日本語タグを2〜4個。「その他」は絶対に使わないこと。内容が不明な場合でも最も近いカテゴリを選ぶ例: AI, テクノロジー, ビジネス, 健康, 旅行, 料理, スポーツ, 政治, 経済, エンタメ, ゲーム, 科学, デザイン, ライフスタイル, 教育, 環境, 医療, 法律, 文化, 歴史)\n\n記事:\n${excerpt}`;
// gemini-2.0-flash は posimai-together プロジェクトで limit:0 のため除外
for (let attempt = 0; attempt < 2; attempt++) {
const modelsToTry = ['gemini-2.5-flash', 'gemini-2.0-flash'];
for (const modelName of modelsToTry) {
try {
const model = togetherGenAI.getGenerativeModel({ model: 'gemini-2.5-flash' });
const model = togetherGenAI.getGenerativeModel({ model: modelName });
const timeoutP = new Promise((_, reject) => setTimeout(() => reject(new Error('timeout')), 30000));
const result = await Promise.race([model.generateContent(prompt), timeoutP]);
const raw = result.response.text().trim();
@ -2719,13 +2719,7 @@ ${excerpt}
}
break;
} catch (aiErr) {
console.error(`[together archive AI] attempt=${attempt + 1} share=${shareId}`, aiErr.message);
// 503一時高負荷は5秒待って1回だけリトライ
if (attempt === 0 && aiErr.status === 503) {
await new Promise(r => setTimeout(r, 5000));
} else {
break;
}
console.error(`[together archive AI] ${modelName} share=${shareId}`, aiErr.message);
}
}
}
@ -2768,9 +2762,9 @@ ${excerpt}
const excerpt = (bodyStart >= 0 ? share.full_content.slice(bodyStart) : share.full_content).slice(0, 4000);
const prompt = `以下の記事を分析して、JSONのみを返してくださいコードブロック不要\n\n{"summary":"1〜2文の日本語要約","tags":["タグ1","タグ2","タグ3"]}\n\n- summary: 読者が読む価値があるかを判断できる1〜2文\n- tags: 内容を表す具体的な日本語タグを2〜4個。「その他」は絶対に使わないこと\n\n記事:\n${excerpt}`;
let rearchiveDone = false;
for (let attempt = 0; attempt < 2; attempt++) {
for (const modelName of ['gemini-2.5-flash', 'gemini-2.0-flash']) {
try {
const model = togetherGenAI.getGenerativeModel({ model: 'gemini-2.5-flash' });
const model = togetherGenAI.getGenerativeModel({ model: modelName });
const timeoutP = new Promise((_, reject) => setTimeout(() => reject(new Error('timeout')), 30000));
const result = await Promise.race([model.generateContent(prompt), timeoutP]);
const raw = result.response.text().trim();
@ -2781,12 +2775,7 @@ ${excerpt}
rearchiveDone = true;
break;
} catch (e) {
console.error(`[rearchive attempt=${attempt + 1}]`, shareId, e.message);
if (attempt === 0 && e.status === 503) {
await new Promise(r => setTimeout(r, 5000));
} else {
break;
}
console.error(`[rearchive ${modelName}]`, shareId, e.message);
}
}
if (!rearchiveDone) {