index.html 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. <!doctype html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>市民请集合智能助手 Web 测试版</title>
  7. <link rel="stylesheet" href="/styles.css" />
  8. </head>
  9. <body>
  10. <div class="scanline"></div>
  11. <header class="top-nav">
  12. <div class="brand">
  13. <img src="/assets/logo.png" alt="" />
  14. <div>
  15. <strong>市民请集合</strong>
  16. <span>PYTHON LANGGRAPH AGENT</span>
  17. </div>
  18. </div>
  19. <nav class="nav">
  20. <button class="nav-item active" type="button">对话</button>
  21. <button class="nav-item" type="button" data-scroll-tools>工具</button>
  22. <button class="nav-item" type="button" data-scroll-trace>轨迹</button>
  23. </nav>
  24. <div class="session-card">
  25. <span class="status-dot" id="statusDot"></span>
  26. <div>
  27. <strong id="sessionStatus">检查中</strong>
  28. <span id="mcpStatus">MCP 连接检测中</span>
  29. </div>
  30. </div>
  31. </header>
  32. <main class="shell">
  33. <section class="hero">
  34. <div class="hero-copy">
  35. <span class="eyebrow">Y2K OPERATIONS CONSOLE</span>
  36. <h1>市民请集合智能助手</h1>
  37. <p>Python + LangGraph 驱动的后台业务 Agent。通过 MCP 调用 DeepSeek、只读数据库和 smqjh 业务工具,直接输出结论、依据和表格。</p>
  38. <div class="hero-actions">
  39. <button id="refreshBtn" class="chrome-button" type="button" title="刷新状态">刷新状态</button>
  40. <span class="system-pill">MCP / DB / DEEPSEEK</span>
  41. </div>
  42. </div>
  43. <div class="hero-panel" aria-hidden="true">
  44. <div class="orbital-ring"></div>
  45. <div class="hero-logo">
  46. <img src="/assets/logo.png" alt="" />
  47. </div>
  48. <div class="mini-display">
  49. <span>AGENT CORE</span>
  50. <strong>ONLINE</strong>
  51. </div>
  52. </div>
  53. </section>
  54. <section class="feature-strip" aria-label="Agent capabilities">
  55. <article class="feature-card">
  56. <span>01</span>
  57. <strong>智能查询</strong>
  58. <p>商品、订单、会员、物流与经营数据自动判断工具。</p>
  59. </article>
  60. <article class="feature-card">
  61. <span>02</span>
  62. <strong>只读安全</strong>
  63. <p>数据库查询走 MCP 白名单和 SELECT 校验。</p>
  64. </article>
  65. <article class="feature-card">
  66. <span>03</span>
  67. <strong>表格输出</strong>
  68. <p>结构化 rows/columns 直接渲染,可下载 CSV。</p>
  69. </article>
  70. <article class="feature-card">
  71. <span>04</span>
  72. <strong>月结扩展</strong>
  73. <p>企业月结、核对、人工确认流程继续接入。</p>
  74. </article>
  75. </section>
  76. <section class="workspace">
  77. <section class="chat-card retro-window">
  78. <div class="window-bar">
  79. <span></span>
  80. <span></span>
  81. <span></span>
  82. <strong>SMQJH_AGENT.EXE</strong>
  83. </div>
  84. <div id="messages" class="messages"></div>
  85. <form id="chatForm" class="composer">
  86. <textarea
  87. id="messageInput"
  88. rows="3"
  89. placeholder="输入管理员想完成的操作,例如:当前百事可乐 500ml 的商品描述是什么,或生成铜仁移动 2026-05 月结报告"
  90. ></textarea>
  91. <div class="composer-footer">
  92. <span id="inputCount">0 字</span>
  93. <button id="sendBtn" class="send-button" type="submit">
  94. <span class="send-icon">➤</span>
  95. <span class="send-text">发送</span>
  96. </button>
  97. </div>
  98. </form>
  99. </section>
  100. <aside class="inspector">
  101. <section class="panel player-panel">
  102. <div class="panel-title">
  103. <h2>执行上下文</h2>
  104. </div>
  105. <div class="player-screen">
  106. <span>RUNTIME</span>
  107. <strong>Python + LangGraph</strong>
  108. </div>
  109. <dl class="kv">
  110. <div><dt>运行模式</dt><dd>Web 测试</dd></div>
  111. <div><dt>框架</dt><dd>Python + LangGraph</dd></div>
  112. <div><dt>MCP</dt><dd id="mcpEndpoint">-</dd></div>
  113. <div><dt>工具</dt><dd id="toolCount">-</dd></div>
  114. </dl>
  115. </section>
  116. <section class="panel" id="toolsPanel">
  117. <div class="panel-title">
  118. <h2>可用工具</h2>
  119. </div>
  120. <div id="toolList" class="tool-list"></div>
  121. </section>
  122. <section class="panel" id="tracePanel">
  123. <div class="panel-title">
  124. <h2>执行轨迹</h2>
  125. </div>
  126. <div id="traceList" class="trace-list"></div>
  127. </section>
  128. </aside>
  129. </section>
  130. </main>
  131. <script src="/app.js" type="module"></script>
  132. </body>
  133. </html>