Synaplan
开源 AI 软件平台,面向企业:自托管 AI 代理,符合 GDPR 的聊天机器人小部件,RAG 知识库,WhatsApp 与 Outlook AI,MCP,多模型路由。支持 Docker、Kubernetes 或在 Germ 托管。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
A static peer review form. GitHub Pages serves this folder directly from main — there is no build step.
Opening index.html as a file shows the layout, but most browsers block the JavaScript modules, so the questions stay blank. Serve the folder instead:
Then open http://localhost:8000. The published GitHub Pages site loads the form the same way.查看完整 README ↗A static peer review form. GitHub Pages serves this folder directly from main — there is no build step.
Opening index.html as a file shows the layout, but most browsers block the JavaScript modules, so the questions stay blank. Serve the folder instead:
python3 -m http.server
Then open http://localhost:8000. The published GitHub Pages site loads the form the same way.
The page is split in two. The left side is the questionnaire. The right side shows a reference PDF: drop a .pdf file on the panel, or use Choose PDF. The file stays in this browser and is not uploaded. Replace and Remove sit above the document. A reload clears the PDF. On a phone the two panels stack, with the questionnaire on top. Each panel scrolls on its own.
Answers are saved in the browser (localStorage) as you type and restored on reload. Submit shows a summary you can copy and, once Google Drive is set up, saves a copy there. Clear erases the answers in this browser. It does not delete Drive files.
index.html — page shell: questionnaire on the left, reference PDF panel on the rightadmin.html — password-protected list of Drive submissionssrc/questions.js — the four fixed sections, plus the incident templatesrc/app.js — draws the form, saves answers in the browser, and submits to Drivesrc/admin.js — the admin page (reviews and submissions)src/prep.js — the screen where a review is preparedsrc/config.js — the Apps Script web app URL and the public review-link prefixsrc/drive.js — sends requests to the web appsrc/pdfjs.js — loads PDF.js from jsDelivr (version 6.4.299)src/style.css — layout and stylingapps-script/Code.gs — the script to deploy from your Google account. GitHub Pages does not run itpackage.json and src/index.js — leftover Node starter files. The website does not use themOpen src/questions.js. The four sections that are always shown are the segments list. Each segment has a title and a questions list.
Incident questions live once, in incidentTemplate. A review chooses how many copies to show (0 to 10). On the plain page, with no review link, use Add incident and Remove incident. Each copy is titled Peer Review - Incident 1, 2, and so on. Ids look like incident1.patientName, so the copies stay separate.
Each question needs:
id — a unique name. Answers are saved under this id, so do not reuse one. Incident copies add the number for you (incident1.patientName)label — the text shown on the formtype — one of text, textarea, date, select, rating, yesNoNa, or radioFor a dropdown, set type to "select" and add options, for example ["Open", "In Progress", "Completed"].
A rating question is 1 to 5. Set min and max on that question for a different scale.
A yesNoNa question shows Yes, No, and N/A as radio buttons on one row. A radio question is the same row with your own options, for example ["Difficult", "Average"]. Set number to show that number in front of the label.
A textarea starts at 4 rows. Set rows to make it taller.
Set width to "half" to place a short field beside the next half-width field when the section is wide. Leave it off for a full-width field. A narrow section stacks every field in one column.
You can add a placeholder string for hint text inside a text field, and a note string on a segment for a short line under its title.
Save the file and refresh the page. Answers already saved in the browser stay put unless you click Clear or change a question's id.
Submissions are saved by a Google Apps Script web app in your Google account. The website itself stays a static page.
apps-script/Code.gs.ADMIN_PASSWORD. Set the value to the admin password. The current 4-digit password keeps working. Before real reviews, change it to a longer password. Do not put that password in this repo. Turn on 2-step verification for the Google account that owns the script./exec) into src/config.js as APPS_SCRIPT_URL.The script keeps a peerapp index.json file in peerapp submissions so the admin page can list reviews and submissions without opening every file. The index file id is stored in script properties, and the index and each review stay in Apps Script cache for six hours. The latest 150 submissions are stored in that index, answers included, so opening one does not read Drive again. Each review PDF is stored as separate chunk files in its own folder under peerapp reviews. Drive files stay private to your account.
Code.gs changed again for faster admin saves and for the six-hour cache. Paste the new file over the script, then redeploy with Deploy > Manage deployments > edit (pencil) > New version. That keeps the same /exec URL already in src/config.js. Leave ADMIN_PASSWORD as it is. Reviews saved before the chunked-PDF change need to be created again; opening one shows "This review needs to be re-saved". Older reviews with no access-code field stay open and usable with the link alone.
Until APPS_SCRIPT_URL is filled in, Submit still shows the on-page summary and says Drive is not set up, and the admin page says it is not configured.
K7QM-W2XR-9DPA. Leave it empty only if you accept the warning that the link alone opens the PDF. Close review stops subject access until you Reopen review.https://g1e-e.github.io/peerapp/?review= followed by a long id. If the review has an access code, copy that too and send it separately from the link. The subject enters the code before the review name or PDF loads. The code is not put in the link.Someone who opens the site without ?review= can still drop a PDF locally. Subjects should use the link they were sent. Their answers are stored in the browser separately for each review. A subject access code stays in that tab only (sessionStorage). The admin password is exchanged for a session token that also stays in that tab and expires after two hours away.
Protected:
localStorage, IndexedDB, or the Cache API.index.html and admin.html send no referrer and ask crawlers not to index the pages.Keep private yourself: