Primary-text index for personas, faster retrieval, OpenAI model options
- Contemporary and Kafka personas search only "Die Verwandlung" (own index and tool description); per-persona subtitle - New contemporary portrait and avatar alt text - ChatGPT: gpt-6.1-sol, reasoning_effort low via Responses API; default in the model menu - GPT-Realtime-2.1 Mini as third option (realtime_chat.py, WebSocket, text only) - Load .env for OPENAI_API_KEY - Reranker in fp16 on GPU with 25 candidates; reranker, embeddings and BM25 shared and built at server start - BM25 stem cache (first search ~31s -> ~1.7s) - Timing output per LLM call and search Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+7
-5
@@ -474,7 +474,8 @@
|
||||
Modell
|
||||
<select id="provider">
|
||||
<option value="ollama">Ollama</option>
|
||||
<option value="openai">ChatGPT</option>
|
||||
<option value="openai" selected>ChatGPT</option>
|
||||
<option value="realtime">Realtime Mini</option>
|
||||
</select>
|
||||
</label>
|
||||
</div>
|
||||
@@ -559,12 +560,13 @@
|
||||
try {
|
||||
const res = await fetch('/api/providers');
|
||||
const data = await res.json();
|
||||
if (!data.openai) {
|
||||
const opt = providerEl.querySelector('option[value="openai"]');
|
||||
for (const id of ['openai', 'realtime']) {
|
||||
if (data[id]) continue;
|
||||
const opt = providerEl.querySelector('option[value="' + id + '"]');
|
||||
opt.disabled = true;
|
||||
opt.textContent = 'ChatGPT (aus)';
|
||||
opt.textContent += ' (aus)';
|
||||
opt.title = 'OpenAI ist nicht eingerichtet (OPENAI_API_KEY fehlt)';
|
||||
if (providerEl.value === 'openai') providerEl.value = 'ollama';
|
||||
if (providerEl.value === id) providerEl.value = 'ollama';
|
||||
}
|
||||
} catch (_) {}
|
||||
})();
|
||||
|
||||
Reference in New Issue
Block a user