Corin1998 commited on
Commit
35cf45a
·
verified ·
1 Parent(s): b0e0671

Create static/app.js

Browse files
Files changed (1) hide show
  1. static/app.js +69 -0
static/app.js ADDED
@@ -0,0 +1,69 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const logEl = document.getElementById("log");
2
+ function log(msg){ logEl.textContent += msg + "\n"; }
3
+
4
+ async function postJSON(url, body){
5
+ const res = await fetch(url, {
6
+ method: "POST",
7
+ headers: {"Content-Type": "application/json"},
8
+ body: JSON.stringify(body)
9
+ });
10
+ if(!res.ok){ throw new Error(`${url}: ${res.status} ${await res.text()}`); }
11
+ return await res.json();
12
+ }
13
+
14
+ document.getElementById("btnIngestEdinet").onclick = async () => {
15
+ const edinetCode = document.getElementById("edinetCode").value.trim();
16
+ const edinetDate = document.getElementById("edinetDate").value.trim();
17
+ const out = document.getElementById("ingestEdinetResult");
18
+ out.textContent = "実行中…";
19
+ try{
20
+ const data = await postJSON("/ingest/edinet", {edinet_code: edinetCode, date: edinetDate});
21
+ out.textContent = `投入チャンク数: ${data.ingested_chunks}`;
22
+ log(`[EDINET] code=${edinetCode} date=${edinetDate} -> chunks=${data.ingested_chunks}`);
23
+ }catch(e){
24
+ out.textContent = "エラー: " + e.message;
25
+ log("[EDINET][ERR] " + e.message);
26
+ }
27
+ };
28
+
29
+ document.getElementById("btnIngestUpload").onclick = async () => {
30
+ const files = document.getElementById("pdfFiles").files;
31
+ const out = document.getElementById("ingestUploadResult");
32
+ if(!files || files.length === 0){ out.textContent = "PDFを選択してください"; return; }
33
+ out.textContent = "アップロード中…";
34
+ try{
35
+ const fd = new FormData();
36
+ for(const f of files){ fd.append("files", f, f.name); }
37
+ const res = await fetch("/ingest/upload", { method: "POST", body: fd });
38
+ if(!res.ok){ throw new Error(await res.text()); }
39
+ const data = await res.json();
40
+ out.textContent = `アップロード保存: ${data.saved?.length || 0}件 / 投入チャンク: ${data.ingested_chunks}`;
41
+ log(`[UPLOAD] saved=${(data.saved||[]).join(", ")} chunks=${data.ingested_chunks}`);
42
+ }catch(e){
43
+ out.textContent = "エラー: " + e.message;
44
+ log("[UPLOAD][ERR] " + e.message);
45
+ }
46
+ };
47
+
48
+ document.getElementById("btnGenerate").onclick = async () => {
49
+ const q = document.getElementById("query").value.trim();
50
+ const st = document.getElementById("generateStatus");
51
+ const dl = document.getElementById("downloadLinks");
52
+ st.textContent = "生成中…(初回はモデルDLで時間がかかる場合があります)";
53
+ dl.innerHTML = "";
54
+ try{
55
+ const data = await postJSON("/generate/all", {query: q});
56
+ st.textContent = "生成完了";
57
+ const a1 = document.createElement("a");
58
+ a1.href = data.pptx; a1.textContent = "PPTXをダウンロード";
59
+ const a2 = document.createElement("a");
60
+ a2.href = data.qa_csv; a2.textContent = "Q&A CSVをダウンロード";
61
+ dl.appendChild(a1);
62
+ dl.appendChild(document.createTextNode(" / "));
63
+ dl.appendChild(a2);
64
+ log(`[GENERATE] ppt=${data.pptx} csv=${data.qa_csv}`);
65
+ }catch(e){
66
+ st.textContent = "エラー: " + e.message;
67
+ log("[GENERATE][ERR] " + e.message);
68
+ }
69
+ };