内部 FAQ 的 Azure OpenAI 隐私备忘录
用 Claude Code 分类 FAQ、个人信息、RBAC、content filtering、日志和网络。
税务、劳务、法律或登记事务所的内部 FAQ,很容易变成客户案件搜索引擎。风险不只是 chatbot,而是把公开流程、客户姓名、调查笔记、个人编号、合同条款和个案判断混在一起的表格。
Key Points
- 在测试 Azure OpenAI 前先分类数据。
- 云端隐私承诺不能替你决定 prompt、file、vector、log 里放什么。
- Claude Code 读取列名、脱敏样本、公开资料和角色。
- 人来决定专业判断、隐私、合同、公开、日志、RBAC 和网络。
- 观察首次回答时间、错误回答、敏感信息发现、FAQ 更新和咨询率。
Internal FAQ Workflow
具体材料是 FAQ 行、客户笔记、Teams 问题、公开模板、内部流程、Azure 角色和 logging 规则。先做数据边界,再测试模型。
Official sources checked: Data, privacy, and security for Models sold by Azure, Foundry Models sold by Azure, content filtering, managed identity, RBAC, network, and monitoring. Related guide: Vertex AI sales FAQ memo.
What Claude Code Handles And What Humans Decide
只给 Claude Code title、category、public URL、redacted sample、policy heading 和 Azure role name。不要给客户姓名、个人编号、地址、银行账户、调查细节、合同或结论。
Claude Code classifies FAQ rows, detects sensitive columns, drafts RBAC and logging questions, and creates escalation notes. Humans decide professional judgment, privacy, contracts, publication, role assignment, network posture, and launch approval.
3 Use Cases
Use case 1: Split FAQ candidates
- Input: FAQ table, column names, public references, procedure headings, redacted samples.
- Output: safe for AI, human review first, never send.
- Human review: client name, personal number, contract, professional judgment, case details.
Use case 2: Draft the Azure memo
- Input: resource name, pilot team, RBAC candidates, log viewers, test environment, launch date.
- Output: owner, tester, log viewer, deployment manager, audit memo.
- Human review: admin rights, logs, privacy boundary, network decision.
Use case 3: Handle wrong answers or filter events
- Input: wrong answer, content filter event, staff question, repair owner, approver.
- Output: update FAQ, update prompt, route to human, or ban answer.
- Human review: professional decision, client explanation, publication, recurrence prevention.
Copy-Paste Prompt
Act as an Azure OpenAI adoption memo reviewer for a professional services office.
Classify internal FAQ candidates into safe for AI, human review first, and never send.
Check client names, personal numbers, addresses, bank accounts, contracts, case details, RBAC, logs, network, content filtering, and human review.
Do not change Azure settings.
Return the five rows to inspect today.
Working Check Code
// verify-internal-faq-ai-boundary.mjs
// No dependencies. Run with: node verify-internal-faq-ai-boundary.mjs
const faqCandidates = [
{
id: "faq-001",
title: "年末調整の必要書類",
audience: "internal",
source: "public template",
text: "扶養控除申告書、保険料控除証明書、住宅ローン控除資料の提出期限を確認する。",
containsClientName: false,
containsMyNumber: false,
containsContractTerm: false,
approvedForAi: true
},
{
id: "faq-002",
title: "A社の税務調査メモ",
audience: "internal",
source: "case note",
text: "A社 代表 山田太郎 様。マイナンバー 123456789012。調査官とのやり取り。",
containsClientName: true,
containsMyNumber: true,
containsContractTerm: true,
approvedForAi: true
},
{
id: "faq-003",
title: "電子帳簿保存の確認順",
audience: "staff",
source: "internal checklist",
text: "保存場所、検索項目、権限、変更履歴、例外対応を担当者が確認する。",
containsClientName: false,
containsMyNumber: false,
containsContractTerm: false,
approvedForAi: false
}
];
const deploymentMemo = {
dataPrivacyRead: true,
contentFilteringRead: true,
rbacOwner: "",
privateNetworkDecision: "undecided",
loggingPolicy: "",
humanReviewOwner: "partner"
};
const problems = [];
for (const item of faqCandidates) {
const sensitive = [];
if (item.containsClientName) sensitive.push("client name");
if (item.containsMyNumber || /\d{12}/.test(item.text)) sensitive.push("my number");
if (item.containsContractTerm) sensitive.push("contract or case detail");
if (item.approvedForAi && sensitive.length > 0) {
problems.push({ item: item.id, fix: "remove from AI FAQ input: " + sensitive.join(", ") });
}
if (!item.approvedForAi && item.source !== "public template") {
problems.push({ item: item.id, fix: "route to human review before Azure OpenAI testing" });
}
}
if (!deploymentMemo.dataPrivacyRead) {
problems.push({ item: "data privacy", fix: "read Azure data privacy notes before choosing data sources" });
}
if (!deploymentMemo.contentFilteringRead) {
problems.push({ item: "content filter", fix: "read content filtering behavior and write escalation rules" });
}
if (!deploymentMemo.rbacOwner) {
problems.push({ item: "RBAC", fix: "assign owner for who can deploy, test, and view logs" });
}
if (deploymentMemo.privateNetworkDecision === "undecided") {
problems.push({ item: "network", fix: "decide public network, private endpoint, or pilot-only access" });
}
if (!deploymentMemo.loggingPolicy) {
problems.push({ item: "logging", fix: "write what prompts, outputs, and request IDs may be logged internally" });
}
if (problems.length > 0) {
console.table(problems);
process.exitCode = 1;
} else {
console.log("Internal FAQ AI boundary passed.");
}
Pitfall: Common Failure Cases
Do not mix client notes into internal FAQ. Do not skip office-side classification after reading cloud privacy notes. Do not grant broad access just because the office is small. Do not repair every wrong answer with prompt edits. Fix the memo with data boxes, role separation, logging policy, network decision, and human review.
FAQ
Q. What should the office create first?
A. A classification table, not a chatbot.
Q. Is removing client names enough?
A. No. Dates, amounts, contracts, case names, and conclusions can identify a case.
Q. Does content filtering prevent professional mistakes?
A. No. It helps with harmful content categories, not specialist judgment.
Q. What metric matters?
A. First-answer time, wrong-answer count, sensitive data findings, FAQ updates, and training inquiries.
Training And Consultation Signal
If FAQ candidates contain case details or access rules are unclear, start with a data and permission memo. This is a fit for ClaudeCodeLab training.
What I Verified
I checked official Azure and Microsoft Foundry sources, CTA, executable JavaScript, internal link, external links, locale coverage, and queue removal. The first action is to classify 20 FAQ candidates into safe for AI, human review first, and never send.
相关文章
用 Claude Code 帮律师事务所整理咨询笔记、起草文书底稿
律师事务所如何用生成式 AI 整理咨询笔记、辅助起草文书底稿的实操步骤:提示词模板、校验脚本、当事人隐私注意事项,全程第一人称记录。
用 Claude Code 整理酒店取消回复:不把预订号和个人信息交给 AI 的检查表
酒店取消和改期回复的隐私检查流程:不把预订号、姓名和退款判断交给 AI。
用 Claude Code 实现 Service Worker:缓存、更新与离线 UX
讲清 Service Worker、缓存失效、更新生命周期、离线 UX,并提供可复制运行的 Claude Code 示例。
免费 PDF: Claude Code 速查表
输入邮箱即可获取一页 PDF,整理常用命令、审查习惯和安全工作流。
我们会妥善保护你的信息,不发送垃圾邮件。
让 Claude Code 真正进入可验证的工作流
先用免费 PDF 固定基础,再用 Gumroad 教材复用工作流;如果涉及团队导入、权限或收入路径,可以直接咨询。
关于作者
Masa
专注 Claude Code 实务流程、团队导入和内容转化的工程师。