summaryrefslogtreecommitdiff
path: root/src/ollama_web/templates/index.html
diff options
context:
space:
mode:
authortanaka takashi <isazaka@gmail.com>2026-06-24 00:19:26 +0900
committertanaka takashi <isazaka@gmail.com>2026-06-24 00:19:26 +0900
commit16a8bfebde12e2e3fa50b2a1384091158fdabe91 (patch)
treeab9e64216510560204e38dbe464bca892dc1713a /src/ollama_web/templates/index.html
parent5d9fc9c9c976cb6fc7d0b8060abcd2860ebf8456 (diff)
機能追加(セッション、左ペインでのセッション管理、ファイル取得ツール、pdfテキスト化ツール)
Diffstat (limited to 'src/ollama_web/templates/index.html')
-rw-r--r--src/ollama_web/templates/index.html72
1 files changed, 46 insertions, 26 deletions
diff --git a/src/ollama_web/templates/index.html b/src/ollama_web/templates/index.html
index 14bdf87..eae3b6d 100644
--- a/src/ollama_web/templates/index.html
+++ b/src/ollama_web/templates/index.html
@@ -10,41 +10,61 @@
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script>
</head>
<body>
- <header>
- <h1>ollama-web</h1>
- <div class="controls">
- <label for="model-select">モデル:</label>
- <select id="model-select">
- {% if models %}
- {% for m in models %}
- <option value="{{ m }}" {% if m == default_model %}selected{% endif %}>{{ m }}</option>
- {% endfor %}
- {% else %}
- <option value="{{ default_model }}" selected>{{ default_model }}</option>
- {% endif %}
- </select>
- <label class="think-toggle">
- <input type="checkbox" id="think-toggle" /> thinking
- </label>
- <button id="clear-btn" type="button">会話クリア</button>
+ <aside id="sidebar">
+ <div class="sidebar-header">
+ <h2>セッション</h2>
+ <button id="new-session-btn" type="button" title="新規セッション">+</button>
</div>
- </header>
+ <ul id="session-list"></ul>
+ </aside>
- <main id="chat"></main>
+ <div id="main">
+ <header>
+ <h1>ollama-web</h1>
+ <div class="controls">
+ <label for="model-select">モデル:</label>
+ <select id="model-select">
+ {% if models %}
+ {% for m in models %}
+ <option value="{{ m }}" {% if m == default_model %}selected{% endif %}>{{ m }}</option>
+ {% endfor %}
+ {% else %}
+ <option value="{{ default_model }}" selected>{{ default_model }}</option>
+ {% endif %}
+ </select>
+ <label class="think-toggle">
+ <input type="checkbox" id="think-toggle" /> thinking
+ </label>
+ <button id="clear-btn" type="button">会話クリア</button>
+ </div>
+ </header>
- <form id="input-form">
- <textarea id="input" placeholder="メッセージを入力… (Enter で送信 / Shift+Enter で改行)"
- rows="2" autofocus></textarea>
- <button type="submit" id="send-btn">送信</button>
- <button type="button" id="cancel-btn" disabled>停止</button>
- </form>
+ <main id="chat"></main>
+
+ <div id="attachments"></div>
+
+ <form id="input-form">
+ <div class="input-row">
+ <label class="attach-btn" title="ファイルを添付">
+ <input type="file" id="file-input" multiple accept="*/*" />
+ 📎
+ </label>
+ <textarea id="input" placeholder="メッセージを入力… (Enter で送信 / Shift+Enter で改行)"
+ rows="2" autofocus></textarea>
+ <button type="submit" id="send-btn">送信</button>
+ <button type="button" id="cancel-btn" disabled>停止</button>
+ </div>
+ </form>
+ </div>
<script>
const TOOLS = [
{ name: "web_search", label: "Web検索" },
{ name: "scrape_url", label: "スクレイピング" },
+ { name: "search_and_fetch", label: "ファイル検索・取得" },
+ { name: "pdf_to_text", label: "PDFテキスト変換" },
];
</script>
<script src="{{ url_for('static', path='app.js') }}"></script>
</body>
-</html>
+</html> \ No newline at end of file