mirror of
https://github.com/SilenceLurker/ST-Amily2-Chat-Optimisation.git
synced 2026-06-06 07:45:51 +00:00
重构项目架构,添加 Nccs API 设置,优化流式支持逻辑
This commit is contained in:
4
TODO.md
4
TODO.md
@@ -13,6 +13,10 @@
|
|||||||
|
|
||||||
以下为待开发内容
|
以下为待开发内容
|
||||||
|
|
||||||
|
- **项目框架重构 (Project Refactoring)**:
|
||||||
|
- 现状:大量功能模块(如 `NccsApi.js`)存在手动组装参数、逻辑耦合度高、代码风格不统一("能跑就行"遗留债)等问题。
|
||||||
|
- 目标:系统性重构项目架构,统一使用 Builder 模式(如 `Options.builder`),解耦业务逻辑与配置管理,提升代码可维护性和优雅度。
|
||||||
|
|
||||||
## 未修复
|
## 未修复
|
||||||
|
|
||||||
以下为示例(预计三个版本后移除)
|
以下为示例(预计三个版本后移除)
|
||||||
|
|||||||
@@ -333,13 +333,12 @@
|
|||||||
|
|
||||||
<div class="amily2_opt_settings_block" style="margin-bottom: 10px;">
|
<div class="amily2_opt_settings_block" style="margin-bottom: 10px;">
|
||||||
<label for="nccs-temperature">Temperature: <span id="nccs-temperature-value">0.7</span></label>
|
<label for="nccs-temperature">Temperature: <span id="nccs-temperature-value">0.7</span></label>
|
||||||
<input type="checkbox" id="nccs-api-fakestream-enabled" data-setting-key="nccsFakeStreamEnabled"
|
<input type="range" id="nccs-temperature" min="0" max="2" step="0.1" value="0.7">
|
||||||
data-type="boolean">
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="amily2_opt_settings_block" style="margin-bottom: 10px;">
|
<div class="amily2_opt_settings_block" style="margin-bottom: 10px;">
|
||||||
<label for="nccs-temperature">Temperature: <span id="nccs-temperature-value">0.7</span></label>
|
<label for="nccs-api-fakestream-enabled">启用流式支持: </label>
|
||||||
<input type="range" id="nccs-temperature" min="0" max="2" step="0.1" value="0.7">
|
<input type="checkbox" id="nccs-api-fakestream-enabled" data-setting-key="nccsFakeStreamEnabled" data-type="boolean">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="amily2_opt_settings_block" style="margin-bottom: 10px;">
|
<div class="amily2_opt_settings_block" style="margin-bottom: 10px;">
|
||||||
|
|||||||
@@ -38,13 +38,15 @@ if (window.Amily2Bus) {
|
|||||||
|
|
||||||
export function getNccsApiSettings() {
|
export function getNccsApiSettings() {
|
||||||
return {
|
return {
|
||||||
|
nccsEnabled: extension_settings[extensionName]?.nccsEnabled || false,
|
||||||
apiMode: extension_settings[extensionName]?.nccsApiMode || 'openai_test',
|
apiMode: extension_settings[extensionName]?.nccsApiMode || 'openai_test',
|
||||||
apiUrl: extension_settings[extensionName]?.nccsApiUrl?.trim() || '',
|
apiUrl: extension_settings[extensionName]?.nccsApiUrl?.trim() || '',
|
||||||
apiKey: extension_settings[extensionName]?.nccsApiKey?.trim() || '',
|
apiKey: extension_settings[extensionName]?.nccsApiKey?.trim() || '',
|
||||||
model: extension_settings[extensionName]?.nccsModel || '',
|
model: extension_settings[extensionName]?.nccsModel || '',
|
||||||
maxTokens: extension_settings[extensionName]?.nccsMaxTokens || 4000,
|
maxTokens: extension_settings[extensionName]?.nccsMaxTokens || 4000,
|
||||||
temperature: extension_settings[extensionName]?.nccsTemperature || 0.7,
|
temperature: extension_settings[extensionName]?.nccsTemperature || 0.7,
|
||||||
tavernProfile: extension_settings[extensionName]?.nccsTavernProfile || ''
|
tavernProfile: extension_settings[extensionName]?.nccsTavernProfile || '',
|
||||||
|
useFakeStream: extension_settings[extensionName]?.nccsFakeStreamEnabled || false
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -155,4 +155,8 @@ export const tableSystemDefaultSettings = {
|
|||||||
table_independent_rules_enabled: false,
|
table_independent_rules_enabled: false,
|
||||||
table_tags_to_extract: '',
|
table_tags_to_extract: '',
|
||||||
table_exclusion_rules: [],
|
table_exclusion_rules: [],
|
||||||
|
|
||||||
|
// Nccs API 设置
|
||||||
|
nccsEnabled: false,
|
||||||
|
nccsFakeStreamEnabled: false,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
{
|
{
|
||||||
"name": "Amily2号聊天优化助手",
|
"name": "Amily2号聊天优化助手",
|
||||||
"display_name": "Amily2号助手",
|
"display_name": "Amily2号助手",
|
||||||
"version": "1.8.3",
|
"version": "1.8.3-a",
|
||||||
"author": "Wx-2025",
|
"author": "Wx-2025",
|
||||||
"description": "一个拥有独立UI的智能引擎,正文优化、自动总结、记忆表格、rag向量、隐藏楼层、剧情推进等多功能整合。",
|
"description": "一个拥有独立UI的智能引擎,正文优化、自动总结、记忆表格、rag向量、隐藏楼层、剧情推进等多功能整合。",
|
||||||
"minSillyTavernVersion": "1.10.0",
|
"minSillyTavernVersion": "1.10.0",
|
||||||
"requires": [],
|
"requires": [],
|
||||||
"homePage": "https://github.com/Wx-2025/ST-Amily2-Chat-Optimisation.git",
|
"homePage": "https://github.com/Wx-2025/ST-Amily2-Chat-Optimisation.git",
|
||||||
"loading_order": 9999,
|
"loading_order": 9999,
|
||||||
"js": "index.js",
|
"js": "index.js",
|
||||||
"styles": ["style.css"]
|
"styles": ["style.css"]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1980,7 +1980,7 @@ function bindNccsApiEvents() {
|
|||||||
const settings = extension_settings[extensionName];
|
const settings = extension_settings[extensionName];
|
||||||
|
|
||||||
if (settings.nccsEnabled === undefined) settings.nccsEnabled = false;
|
if (settings.nccsEnabled === undefined) settings.nccsEnabled = false;
|
||||||
if (settings.nccsFakeStreamEnabled === undefined) settings.nccsEnabled = false;
|
if (settings.nccsFakeStreamEnabled === undefined) settings.nccsFakeStreamEnabled = false;
|
||||||
if (settings.nccsApiMode === undefined) settings.nccsApiMode = 'openai_test';
|
if (settings.nccsApiMode === undefined) settings.nccsApiMode = 'openai_test';
|
||||||
if (settings.nccsApiUrl === undefined) settings.nccsApiUrl = 'https://api.openai.com/v1';
|
if (settings.nccsApiUrl === undefined) settings.nccsApiUrl = 'https://api.openai.com/v1';
|
||||||
if (settings.nccsApiKey === undefined) settings.nccsApiKey = '';
|
if (settings.nccsApiKey === undefined) settings.nccsApiKey = '';
|
||||||
@@ -2068,6 +2068,12 @@ function bindNccsApiEvents() {
|
|||||||
log(`Nccs API ${enabledToggle.checked ? '已启用' : '已禁用'}`, 'info');
|
log(`Nccs API ${enabledToggle.checked ? '已启用' : '已禁用'}`, 'info');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
enabledFakeStreamToggle.addEventListener('change', () => {
|
||||||
|
settings.nccsFakeStreamEnabled = enabledFakeStreamToggle.checked;
|
||||||
|
saveSettingsDebounced();
|
||||||
|
log(`Nccs API FakeStream ${enabledFakeStreamToggle.checked ? 'Enabled' : 'Disabled'}`, 'info');
|
||||||
|
});
|
||||||
|
|
||||||
if (modeSelect) {
|
if (modeSelect) {
|
||||||
modeSelect.addEventListener('change', () => {
|
modeSelect.addEventListener('change', () => {
|
||||||
settings.nccsApiMode = modeSelect.value;
|
settings.nccsApiMode = modeSelect.value;
|
||||||
|
|||||||
Reference in New Issue
Block a user