Initial import

This commit is contained in:
2025-09-07 22:33:51 +03:00
commit 727cb2a4e3
23 changed files with 3480 additions and 0 deletions

60
static/index.html Normal file
View File

@@ -0,0 +1,60 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>НадTavern</title>
<style>
body { font-family: Arial, sans-serif; margin: 24px; }
textarea { width: 100%; height: 200px; }
pre { background: #111; color: #eee; padding: 12px; border-radius: 6px; overflow: auto; }
.row { display: flex; gap: 16px; }
.col { flex: 1; }
</style>
</head>
<body>
<h1>НадTavern — Мини UI</h1>
<p>Тестовый интерфейс для запроса к <code>/v1/chat/completions</code> без стриминга.</p>
<p><a href="/ui/pipeline.html">Открыть редактор пайплайна (JSON)</a></p>
<p><a href="/ui/editor.html">Открыть визуальный редактор нод</a></p>
<div class="row">
<div class="col">
<h3>Ввод (OpenAI-формат)</h3>
<textarea id="payload"></textarea>
<button id="send">Отправить</button>
</div>
<div class="col">
<h3>Ответ</h3>
<pre id="out"></pre>
</div>
</div>
<script>
const sample = {
model: "gpt-4o-mini",
messages: [
{ role: "system", content: "You are a helpful assistant." },
{ role: "user", content: "Привет! Расскажи коротко о проекте НадTavern." }
],
temperature: 0.2,
max_tokens: 128
};
document.getElementById('payload').value = JSON.stringify(sample, null, 2);
document.getElementById('send').onclick = async () => {
const raw = document.getElementById('payload').value;
try {
const res = await fetch('/v1/chat/completions', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: raw
});
const json = await res.json();
document.getElementById('out').textContent = JSON.stringify(json, null, 2);
} catch (e) {
document.getElementById('out').textContent = String(e);
}
};
</script>
</body>
</html>