Astra v2.2.41: /benchmark LLM 4-lens synthesis + Datacollect settings
- /benchmark now runs the full scan -> LLM 3-stage 4-lens synthesis -> markdown report pipeline, matching the Datacollect web app output - Add settings: datacollectSynthesisTemperature (0.1), datacollectCrawlDepth, datacollectMaxPages, datacollectSavePath; new "Datacollect" Settings section - Fix slash result not rendering (missing streamStart) and /benchmark URL parsing when natural language is appended - Rename view container/view ids to g1nation-* to avoid conflict with the Antigravity built-in "Connect AI" extension - Version bump 2.2.34 -> 2.2.41 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -45,6 +45,51 @@
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Datacollect -->
|
||||
<section class="section" data-section="datacollect">
|
||||
<h2>Datacollect (slash 명령)</h2>
|
||||
<p class="hint">채팅에서 <code>/research</code> · <code>/benchmark</code> · <code>/youtube</code> 를 입력하면 Datacollect Bridge로 위임됩니다. Bridge는 Datacollect 프로젝트에서 <code>npm run bridge</code> 로 실행해야 합니다.</p>
|
||||
<div class="row">
|
||||
<label for="dcBridgeUrl">Bridge URL</label>
|
||||
<div class="input-group">
|
||||
<input id="dcBridgeUrl" type="text" placeholder="http://127.0.0.1:3002" spellcheck="false" />
|
||||
<button data-save="datacollect.bridgeUrl">저장</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label for="dcSavePath">결과물 저장 폴더</label>
|
||||
<div class="input-group">
|
||||
<input id="dcSavePath" type="text" placeholder="(비우면 Bridge 기본 위치)" spellcheck="false" />
|
||||
<button data-save="datacollect.savePath">저장</button>
|
||||
</div>
|
||||
<small class="hint">/benchmark 등의 결과 markdown 저장 위치. 비워두면 Bridge의 <code>WIKI_RAW_PATH</code> 환경변수가 결정합니다 (코드에 절대경로 하드코딩 없음). 특정 폴더로 저장하려면 절대경로를 입력하세요.</small>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label for="dcCrawlDepth">크롤 깊이 기본값</label>
|
||||
<div class="input-group narrow">
|
||||
<input id="dcCrawlDepth" type="number" min="0" max="3" step="1" />
|
||||
<button data-save="datacollect.crawlDepth">저장</button>
|
||||
</div>
|
||||
<small class="hint">/benchmark 사이트맵 크롤 깊이. 0=루트만, 1=직속 자식, 2=손자, 3=깊은 크롤. 명령어에서 <code>depth=N</code> 으로 그때그때 덮어쓸 수 있습니다.</small>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label for="dcMaxPages">최대 페이지 기본값</label>
|
||||
<div class="input-group narrow">
|
||||
<input id="dcMaxPages" type="number" min="1" max="20" step="1" />
|
||||
<button data-save="datacollect.maxPages">저장</button>
|
||||
</div>
|
||||
<small class="hint">/benchmark 스캔 최대 페이지 수. 명령어에서 <code>pages=N</code> 으로 덮어쓸 수 있습니다 (Bridge 상한 20).</small>
|
||||
</div>
|
||||
<div class="row">
|
||||
<label for="dcSynthTemp">합성 Temperature</label>
|
||||
<div class="input-group narrow">
|
||||
<input id="dcSynthTemp" type="number" min="0" max="2" step="0.05" />
|
||||
<button data-save="datacollect.synthesisTemperature">저장</button>
|
||||
</div>
|
||||
<small class="hint">/benchmark LLM 4-렌즈 합성의 temperature. 낮을수록(0.1) 환각·깨진 문자가 줄고 결정적입니다. 기본 0.1 권장.</small>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Memory -->
|
||||
<section class="section" data-section="memory">
|
||||
<h2>메모리</h2>
|
||||
|
||||
@@ -24,6 +24,13 @@
|
||||
const cnRefreshModels = $('cnRefreshModels');
|
||||
const cnModelHint = $('cnModelHint');
|
||||
|
||||
// ---- Datacollect ----
|
||||
const dcBridgeUrl = $('dcBridgeUrl');
|
||||
const dcSavePath = $('dcSavePath');
|
||||
const dcCrawlDepth = $('dcCrawlDepth');
|
||||
const dcMaxPages = $('dcMaxPages');
|
||||
const dcSynthTemp = $('dcSynthTemp');
|
||||
|
||||
// ---- Memory ----
|
||||
const memEnabled = $('memEnabled');
|
||||
const memShort = $('memShort');
|
||||
@@ -113,6 +120,23 @@
|
||||
vscode.postMessage({ type: 'connection.update', requestTimeout: Number(cnTimeout.value) })
|
||||
);
|
||||
|
||||
// ---- Datacollect listeners ----
|
||||
document.querySelector('[data-save="datacollect.bridgeUrl"]').addEventListener('click', () =>
|
||||
vscode.postMessage({ type: 'datacollect.update', bridgeUrl: dcBridgeUrl.value })
|
||||
);
|
||||
document.querySelector('[data-save="datacollect.savePath"]').addEventListener('click', () =>
|
||||
vscode.postMessage({ type: 'datacollect.update', savePath: dcSavePath.value })
|
||||
);
|
||||
document.querySelector('[data-save="datacollect.crawlDepth"]').addEventListener('click', () =>
|
||||
vscode.postMessage({ type: 'datacollect.update', crawlDepth: Number(dcCrawlDepth.value) })
|
||||
);
|
||||
document.querySelector('[data-save="datacollect.maxPages"]').addEventListener('click', () =>
|
||||
vscode.postMessage({ type: 'datacollect.update', maxPages: Number(dcMaxPages.value) })
|
||||
);
|
||||
document.querySelector('[data-save="datacollect.synthesisTemperature"]').addEventListener('click', () =>
|
||||
vscode.postMessage({ type: 'datacollect.update', synthesisTemperature: Number(dcSynthTemp.value) })
|
||||
);
|
||||
|
||||
// ---- Memory listeners ----
|
||||
memEnabled.addEventListener('change', (e) =>
|
||||
vscode.postMessage({ type: 'memory.update', memoryEnabled: e.target.checked })
|
||||
@@ -338,6 +362,16 @@
|
||||
? '모델 목록 가져오는 중…'
|
||||
: `사이드바에서 선택한 모델이 여기에도 동기화됩니다. (${list.length}개 발견)`;
|
||||
|
||||
// ---- Datacollect ----
|
||||
const dc = state.datacollect;
|
||||
if (dc) {
|
||||
setIfNotFocused(dcBridgeUrl, dc.bridgeUrl);
|
||||
setIfNotFocused(dcSavePath, dc.savePath);
|
||||
setIfNotFocused(dcCrawlDepth, dc.crawlDepth);
|
||||
setIfNotFocused(dcMaxPages, dc.maxPages);
|
||||
setIfNotFocused(dcSynthTemp, dc.synthesisTemperature);
|
||||
}
|
||||
|
||||
// ---- Memory ----
|
||||
const mem = state.memory;
|
||||
memEnabled.checked = !!mem.memoryEnabled;
|
||||
|
||||
Reference in New Issue
Block a user