Files
opsxdb/homepage/dist/docs/ai/index.html
T

195 lines
9.0 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>AI 助手 · OpsxDB 文档</title>
<meta name="description" content="OpsxDB 桌面数据库工作台用户文档 — 连库、写 SQL、看结果;MySQL / PostgreSQL / SQL Server / Oracle / SQLite / Redis 内置驱动,SSH 隧道与 SSL 加密。">
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2064%2064%22%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22g%22%20x1%3D%220%22%20y1%3D%220%22%20x2%3D%2264%22%20y2%3D%2264%22%20gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%23059669%22%2F%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%2206B6D4%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3Crect%20width%3D%2264%22%20height%3D%2264%22%20rx%3D%2214%22%20fill%3D%22url(%23g)%22%2F%3E%3Cg%20stroke%3D%22%23fff%22%20stroke-width%3D%224.5%22%20fill%3D%22none%22%20stroke-linecap%3D%22round%22%3E%3Cellipse%20cx%3D%2232%22%20cy%3D%2220%22%20rx%3D%2215%22%20ry%3D%226.5%22%2F%3E%3Cpath%20d%3D%22M17%2020v24c0%203.6%206.7%206.5%2015%206.5s15-2.9%2015-6.5V20%22%2F%3E%3Cpath%20d%3D%22M17%2032c0%203.6%206.7%206.5%2015%206.5s15-2.9%2015-6.5%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E">
<link rel="stylesheet" href="/docs/assets/docs.css">
</head>
<body>
<svg xmlns="http://www.w3.org/2000/svg" style="display:none" aria-hidden="true">
<symbol id="i-menu" viewBox="0 0 24 24"><path d="M4 5h16"/><path d="M4 12h16"/><path d="M4 19h16"/></symbol>
<symbol id="i-printer" viewBox="0 0 24 24"><path d="M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2"/><path d="M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6"/><rect x="6" y="14" width="12" height="8" rx="1"/></symbol>
<symbol id="i-thumbs-up" viewBox="0 0 24 24"><path d="M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z"/><path d="M7 10v12"/></symbol>
<symbol id="i-thumbs-down" viewBox="0 0 24 24"><path d="M9 18.12 10 14H4.17a2 2 0 0 1-1.92-2.56l2.33-8A2 2 0 0 1 6.5 2H20a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.76a2 2 0 0 0-1.79 1.11L12 22a3.13 3.13 0 0 1-3-3.88Z"/><path d="M17 14V2"/></symbol>
</svg>
<header class="topbar">
<div class="topbar-inner">
<button class="menu-btn" id="menu-btn" aria-label="打开导航"><svg class="i"><use href="#i-menu"/></svg></button>
<a class="brand" href="/docs">
<span class="brand-logo"><svg width="28" height="28" viewBox="0 0 64 64" aria-label="OpsxDB"><defs><linearGradient id="lg-docs" x1="0" y1="0" x2="64" y2="64" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#059669"/><stop offset="1" stop-color="#06B6D4"/></linearGradient></defs><rect width="64" height="64" rx="14" fill="url(#lg-docs)"/><g stroke="#fff" stroke-width="4.5" fill="none" stroke-linecap="round"><ellipse cx="32" cy="20" rx="15" ry="6.5"/><path d="M17 20v24c0 3.6 6.7 6.5 15 6.5s15-2.9 15-6.5V20"/><path d="M17 32c0 3.6 6.7 6.5 15 6.5s15-2.9 15-6.5"/></g></svg></span>
<span class="brand-name">OpsxDB <em>文档</em></span>
</a>
<span class="ver-badge">v0.1</span>
<div class="search">
<input id="search-input" type="search" placeholder="搜索文档…" autocomplete="off" spellcheck="false">
<div class="search-panel" id="search-panel" hidden></div>
</div>
<nav class="top-links">
<a href="/home">官网</a>
<a href="/docs/quickstart">快速开始</a>
</nav>
</div>
</header>
<div class="layout" id="layout">
<aside class="sidebar" id="sidebar">
<div class="nav-group">
<div class="nav-group-title">开始使用</div>
<a class="nav-link" href="/docs/intro">产品介绍</a>
<a class="nav-link" href="/docs/quickstart">快速开始</a>
<a class="nav-link" href="/docs/interface">界面导览</a>
</div>
<div class="nav-group">
<div class="nav-group-title">连接与驱动</div>
<a class="nav-link" href="/docs/connect">新建连接</a>
<a class="nav-link" href="/docs/drivers">驱动支持</a>
</div>
<div class="nav-group">
<div class="nav-group-title">SQL 工作台</div>
<a class="nav-link" href="/docs/workbench">SQL 工作台</a>
<a class="nav-link" href="/docs/results">结果与导出</a>
<a class="nav-link" href="/docs/redis">Redis 工作台</a>
</div>
<div class="nav-group">
<div class="nav-group-title">安全与 AI</div>
<a class="nav-link" href="/docs/security">安全设计</a>
<a class="nav-link active" href="/docs/ai">AI 助手</a>
</div>
<div class="nav-group">
<div class="nav-group-title">参考</div>
<a class="nav-link" href="/docs/faq">常见问题</a>
<a class="nav-link" href="/docs/shortcuts">快捷键</a>
</div>
<div class="sidebar-foot">© 2026 OpsxDB · 本地优先的数据库工作台</div>
</aside>
<main class="content">
<div class="breadcrumb">文档 <span>/</span> 安全与 AI <span>/</span> AI 助手</div>
<h1 class="page-title">AI 助手</h1>
<div class="page-meta">更新于 2026-09-23</div>
<article class="md">
<p>AI 面板的目标:让「写不出的 SQL」和「看不懂的 SQL」不再阻塞你。</p>
<p>侧栏支持 <strong>Ask | Agent</strong>:Ask 只生成 SQL;Agent 调用与 MCP 同源的只读工具真查库。外部编辑器可用 <code>npx @rlwj-lab/opsxdb-mcp</code> 接入(见应用内《AI 助手》文档)。</p>
<h2 id="sec-1">六种动作</h2>
<table>
<thead>
<tr>
<th>动作</th>
<th>用途</th>
</tr>
</thead>
<tbody>
<tr>
<td>生成</td>
<td>自然语言 → SQL(「查最近 7 天下单但未支付的用户」)</td>
</tr>
<tr>
<td>解释</td>
<td>把一段复杂 SQL 翻译成中文说明</td>
</tr>
<tr>
<td>优化</td>
<td>分析慢查询,给出索引 / 改写建议</td>
</tr>
<tr>
<td>修复</td>
<td>报错信息 + SQL → 修正版本</td>
</tr>
<tr>
<td>方言</td>
<td>MySQL ↔ PostgreSQL 等跨方言转换</td>
</tr>
<tr>
<td>样例</td>
<td>按表结构生成示例查询</td>
</tr>
</tbody>
</table>
<h2 id="sec-2">使用方式</h2>
<ol>
<li>连接库后打开右侧 AI 面板;</li>
<li>选择动作,输入需求或粘贴 SQL(可附上对象树上下文);</li>
<li>生成结果一键放回编辑器,⌘/Ctrl + Enter 执行。</li>
</ol>
<blockquote>
<p><strong>提示</strong>:生成的 SQL 依旧走危险语句确认流程 —— AI 产出与手写 SQL 同等对待,不放宽防护。</p>
</blockquote>
<h2 id="sec-3">接入真实模型</h2>
<p>AI 面板支持任何 <strong>OpenAI 兼容协议</strong>的服务(OpenAI / DeepSeek / 通义 / 本地 vLLM 等),回复以 <strong>SSE 流式</strong>逐字输出,等待模型时不再面对空白。</p>
<p>配置入口(二选一):</p>
<ol>
<li>AI 面板右上角「<strong>配置</strong>」:填 Base URL、API Key、模型名,保存后可一键测试;</li>
<li>配置文件 <code>~/.opsxdb/ai.json</code>(权限 0600),或环境变量 <code>OPSXDB_AI_PROVIDER / OPSXDB_AI_BASE_URL / OPSXDB_AI_API_KEY / OPSXDB_AI_MODEL</code>。</li>
</ol>
<blockquote>
<p><strong>说明</strong>:未配置 API Key 时回落本地 stub(离线占位,内容为模板演示);AI Key 保存后服务端只回显掩码(<code>sk-***</code>)。</p>
</blockquote>
<h2 id="sec-4">数据流向承诺</h2>
<ul>
<li>默认只发送你明确提交的内容(附当前库表结构上下文,不含连接凭据);</li>
<li>可完全关闭 AI 功能(顶栏隐藏面板即可,无后台请求);</li>
<li>使用云端模型时在界面上明确标识,生成 SQL 依旧走危险语句确认流程。</li>
</ul>
</article>
<div class="pn-nav">
<a class="pn prev" href="/docs/security"><span class="pn-label">← 上一页</span><span class="pn-title">安全设计</span></a>
<a class="pn next" href="/docs/faq"><span class="pn-label">下一页 →</span><span class="pn-title">常见问题</span></a>
</div>
<div class="feedback" id="feedback">
<span class="feedback-q">本页内容是否对您有帮助?</span>
<button class="fb-btn" data-v="yes"><svg class="i"><use href="#i-thumbs-up"/></svg> 有帮助</button>
<button class="fb-btn" data-v="no"><svg class="i"><use href="#i-thumbs-down"/></svg> 没有帮助</button>
<span class="fb-thanks" id="fb-thanks" hidden>感谢您的反馈!</span>
</div>
</main>
<aside class="toc">
<div class="toc-title">本页目录</div>
<nav class="toc-nav">
<a class="toc-l2" href="#sec-1">六种动作</a>
<a class="toc-l2" href="#sec-2">使用方式</a>
<a class="toc-l2" href="#sec-3">接入真实模型</a>
<a class="toc-l2" href="#sec-4">数据流向承诺</a>
</nav>
<button class="print-btn" id="print-btn"><svg class="i"><use href="#i-printer"/></svg> 打印 / 导出 PDF</button>
</aside>
</div>
<script src="/docs/assets/docs.js" defer></script>
</body>
</html>