Add files via upload
This commit is contained in:
@@ -204,6 +204,8 @@ function b64UrlEncode(str) {
|
|||||||
// LLM 调用(简化:不再接收预设参数)
|
// LLM 调用(简化:不再接收预设参数)
|
||||||
// ═══════════════════════════════════════════════════════════════════════════
|
// ═══════════════════════════════════════════════════════════════════════════
|
||||||
|
|
||||||
|
// llm-service.js
|
||||||
|
|
||||||
export async function generateScenePlan(options) {
|
export async function generateScenePlan(options) {
|
||||||
const {
|
const {
|
||||||
messageText,
|
messageText,
|
||||||
@@ -220,10 +222,8 @@ export async function generateScenePlan(options) {
|
|||||||
|
|
||||||
const charInfo = buildCharacterInfoForLLM(presentCharacters);
|
const charInfo = buildCharacterInfoForLLM(presentCharacters);
|
||||||
|
|
||||||
// msg1: systemPrompt
|
|
||||||
const msg1 = LLM_PROMPT_CONFIG.systemPrompt;
|
const msg1 = LLM_PROMPT_CONFIG.systemPrompt;
|
||||||
|
|
||||||
// msg2: assistantAck + TAG编写指南
|
|
||||||
let msg2 = LLM_PROMPT_CONFIG.assistantAck;
|
let msg2 = LLM_PROMPT_CONFIG.assistantAck;
|
||||||
if (tagGuideContent) {
|
if (tagGuideContent) {
|
||||||
msg2 = msg2.replace('{$tagGuide}', tagGuideContent);
|
msg2 = msg2.replace('{$tagGuide}', tagGuideContent);
|
||||||
@@ -231,20 +231,16 @@ export async function generateScenePlan(options) {
|
|||||||
msg2 = msg2.replace(/我已查阅以下.*?\n\s*\{\$tagGuide\}\s*\n/g, '');
|
msg2 = msg2.replace(/我已查阅以下.*?\n\s*\{\$tagGuide\}\s*\n/g, '');
|
||||||
}
|
}
|
||||||
|
|
||||||
// msg3: userTemplate
|
|
||||||
let msg3 = LLM_PROMPT_CONFIG.userTemplate
|
let msg3 = LLM_PROMPT_CONFIG.userTemplate
|
||||||
.replace('{{lastMessage}}', messageText)
|
.replace('{{lastMessage}}', messageText)
|
||||||
.replace('{{characterInfo}}', charInfo);
|
.replace('{{characterInfo}}', charInfo);
|
||||||
|
|
||||||
// 不用世界书时:只清空占位符
|
|
||||||
if (!useWorldInfo) {
|
if (!useWorldInfo) {
|
||||||
msg3 = msg3.replace(/\{\$worldInfo\}/gi, '');
|
msg3 = msg3.replace(/\{\$worldInfo\}/gi, '');
|
||||||
}
|
}
|
||||||
|
|
||||||
// msg4: assistantPrefix
|
|
||||||
const msg4 = LLM_PROMPT_CONFIG.assistantPrefix;
|
const msg4 = LLM_PROMPT_CONFIG.assistantPrefix;
|
||||||
|
|
||||||
// 只把 msg1+msg2 放到 top
|
|
||||||
const topMessages = [
|
const topMessages = [
|
||||||
{ role: 'user', content: msg1 },
|
{ role: 'user', content: msg1 },
|
||||||
{ role: 'assistant', content: msg2 },
|
{ role: 'assistant', content: msg2 },
|
||||||
@@ -255,12 +251,21 @@ export async function generateScenePlan(options) {
|
|||||||
throw new LLMServiceError('xbgenraw 模块不可用', 'MODULE_UNAVAILABLE');
|
throw new LLMServiceError('xbgenraw 模块不可用', 'MODULE_UNAVAILABLE');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const isSt = llmApi.provider === 'st';
|
||||||
|
|
||||||
const args = {
|
const args = {
|
||||||
as: 'user',
|
as: 'user',
|
||||||
nonstream: useStream ? 'false' : 'true',
|
nonstream: useStream ? 'false' : 'true',
|
||||||
top64: b64UrlEncode(JSON.stringify(topMessages)),
|
top64: b64UrlEncode(JSON.stringify(topMessages)),
|
||||||
bottomassistant: msg4,
|
bottomassistant: msg4,
|
||||||
id: 'xb_nd_scene_plan'
|
id: 'xb_nd_scene_plan',
|
||||||
|
...(isSt ? {} : {
|
||||||
|
temperature: '0.7',
|
||||||
|
presence_penalty: 'off',
|
||||||
|
frequency_penalty: 'off',
|
||||||
|
top_p: 'off',
|
||||||
|
top_k: 'off',
|
||||||
|
}),
|
||||||
};
|
};
|
||||||
|
|
||||||
let rawOutput;
|
let rawOutput;
|
||||||
|
|||||||
Reference in New Issue
Block a user