-------------------------------+
| llama_server: [● 起動中] |
| ドキュメント: 123件 |
| [mcp.json表示] [コピー] |
| { mcp.jsonの内容 ... } |
| TelosDB 検索 |
| [検索ワード__________][検索] |
| |
| { 検索結果(JSON) ... } |
-------------------------------+
以下は、UI仕様を満たす最小構成のサンプルHTMLです。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<title>TelosDB</title>
<style>
body { font-family: sans-serif; margin: 2em; }
input, button { font-size: 1.1em; margin: 0.2em; }
pre { background: #f4f4f4; padding: 1em; border-radius: 6px; }
</style>
</head>
<body>
<div id="llama-status" style="font-weight:bold; color:green;">llama_server: 起動中</div>
<div id="doc-count" style="font-weight:bold; color:#333;">ドキュメント: 123件</div>
<button onclick="showMcpJson()">mcp.json表示</button>
<button onclick="copyMcpJson()">コピー</button>
<pre id="mcp-json" style="display:none;"></pre>
<h1>TelosDB 検索</h1>
<input id="query" type="text" placeholder="検索ワード" />
<button onclick="search()">検索</button>
<pre id="result"></pre>
<script>
async function showMcpJson() {
const res = await fetch('mcp.json');
const data = await res.json();
const pre = document.getElementById('mcp-json');
pre.textContent = JSON.stringify(data, null, 2);
pre.style.display = 'block';
}
function copyMcpJson() {
const pre = document.getElementById('mcp-json');
if (pre.style.display !== 'none') {
navigator.clipboard.writeText(pre.textContent);
}
}
async function search() {
const q = document.getElementById('query').value;
const res = await fetch('http://127.0.0.1:3001/messages', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
jsonrpc: '2.0',
method: 'search_text',
params: { content: q, limit: 10 },
id: 1,
}),
});
const data = await res.json();
document.getElementById('result').textContent = JSON.stringify(data.result, null, 2);
}
</script>
</body>
</html>