Perplexity Enterprise 提供全面的审计日志功能,帮助组织跟踪用户活动和管理操作。
审计日志会捕获覆盖用户输入、Agent 步骤和答案的端到端查询,以及管理员所做的任何设置更改。 每个日志条目都会记录关键信息,例如“事件类型”(用户执行的操作)、事件发生时间,以及用户的详细信息,如电子邮箱和 IP 地址。 您可以在下方查看示例。
审计日志将实时传送至您通过 HTTP POST 请求配置的 Webhook 端点,为您提供组织内所有用户操作和系统事件的详细、按时间顺序排列的记录。
审计日志仅适用于拥有 50 个或以上席位,或至少有一名 Enterprise Max 用户的企业组织。
启用审计日志
要为您的组织启用 审计日志 ,请按以下步骤操作:
在 Perplexity 企业版门户中,前往您的 组织设置
向下滚动至 审计日志设置 并 启用审计日志记录
配置您的 Webhook URL (必须为 HTTPS),然后点击 保存
为提高安全性,您可以设置一个 Authorization Header ,用于验证所有对您的 Webhook URL 的请求。 除非您指定授权方案,否则您输入的值将作为 Bearer 令牌发送。
Webhook 身份验证
您可以使用以下任一方式保护您的 Webhook 端点:
Bearer 令牌
请提供不含空格的令牌。 系统将自动在标头前添加 Bearer 。
示例:
your-secret-token-123发送方式:
Authorization: Bearer your-secret-token-123
自定义授权标头
请提供完整的授权标头值(必须包含空格)。
示例:
Splunk xyz-token-456发送为:
Authorization: Splunk xyz-token-456
Webhook 交付
请求格式
审计日志通过 HTTP POST 请求发送到您的 Webhook URL,其中包含:
方法:
POST内容类型:
application/json
身份验证标头
如果您已配置身份验证标头令牌,则该令牌将包含在请求中:
Authorization: Bearer your-token-123
或用于自定义标头:
Authorization: Splunk your-token-456
响应处理
您的 Webhook 端点应以 HTTP 2xx 状态码响应,以表明已成功接收。
HTTP 4xx 或 5xx 状态码将在 Perplexity 系统中记录为错误。
审计日志架构
所有审计日志事件均遵循此标准架构:
字段 | 类型 | 必填 | 描述 |
| 字符串 | 是 | 此审计日志事件的唯一标识符(自动生成的 UUID v4) |
| 字符串 | 是 | RFC3339 格式的 ISO 8601 时间戳(例如: |
| 字符串 | 是 | 发生的事件类型(请参阅 事件类型) |
| 字符串 | 是 | 执行操作的用户电子邮件地址 |
| 字符串 | 是 | 发起操作的客户端 IP 地址 |
| 字符串 | 是 | 客户端浏览器或应用程序的用户代理字符串 |
| 字符串 | 否 | 用于跟踪相关操作的会话标识符(可能为 null) |
| 对象 | 否 | 事件特定的附加数据(结构因事件类型而异) |
事件类型
以下是您在 审计日志中可能会看到的各个事件类型的定义:
用户活动事件
事件类型 | 描述 |
| 用户已成功验证并登录 |
| 用户提交了搜索请求 |
| AI 生成的答案已返回给用户 |
| 用户已将文件上传至空间 |
| 用户从空间下载了一个文件 |
管理事件
事件类型 | 描述 |
| 管理员已修改组织设置 |
| 已执行内部管理员操作(供 Perplexity 员工使用) |
| 已将多个用户添加到组织 |
| 已从组织中移除多名用户 |
代理事件
事件类型 | 描述 |
| Comet 代理执行了自动操作 |
有效载荷示例
当用户提交搜索查询时,系统会记录以下条目:
{
"uuid": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"timestamp": "2024-01-15T14:25:12.345678+00:00",
"event_type": "query",
"user_email": "[alice@company.com](<mailto:alice@company.com>)",
"ip_address": "203.0.113.45",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
"session_id": "query_xyz789",
"metadata": {
"query_str": "API 安全的最佳实践是什么?"
}
}
平台专用格式
Slack Webhook
如果您的 Webhook URL 是 Slack Webhook(https://hooks.slack.com/...)),审计日志将自动采用 Slack 的 Block Kit 格式,以实现更丰富的显示效果:
{
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*事件类型:*已生成答案"
}
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*用户:* [alice@company.com](<mailto:alice@company.com>)\n*IP 地址:* 203.0.113.45\n*用户代理:* Mozilla/5.0...\n*会话 ID:*query_xyz789\n*时间戳:*2024-01-15T14:25:18.987654+00:00"
}
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "\n*元数据:*\n• *答案:*API 安全最佳实践包括...\n• *模型:*claude-3-opus"
}
}
]
}
备注:Slack 格式包括:
事件类型将转换为首字母大写,并删除下划线。
如果元数据值超过此限制,将被截断为 500 个字符
为了遵守 Slack 的 3,000 字符限制,元数据部分总长度已被截断为 2,500 字符。
长值会显示截断提示,并附上原始长度。
Splunk HTTP 事件收集器 (HEC)
如果您的身份验证标头以“Splunk”开头,审计日志将自动以 Splunk 要求的格式打包:
{
"event": {
"uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"timestamp": "2024-01-15T10:30:45.123456+00:00",
"event_type": "login",
"user_email": "[user@company.com](<mailto:user@company.com>)",
"ip_address": "192.168.1.100",
"user_agent": "Mozilla/5.0...",
"session_id": "session-abc-123",
"metadata": {}
}
}
通用 Webhook
对于所有其他 Webhook URL,将发送标准 JSON 负载(如“示例负载”部分所示),无需额外格式化。
常见场景
跟踪用户研究会话
要跟踪用户从查询到回答的研究会话:
查询事件:用户提交问题
元数据中包含
query_str包含一个链接到查询的
session_id
答案生成事件:AI 返回答案
与查询事件相同的
session_id包含完整的
answer文本,以及所用的 AImodel可通过
session_id与查询事件关联
监控文件访问
要跟踪正在访问的文件:
文件上传事件:用户将文件添加到空间
包含
filename、file_uuid、space_name和space_uuid
文件下载事件:用户下载文件
相同的
file_uuid可用于与上传关联显示访问文件的人员及时间
审计配置变更
要跟踪管理变更:
组织设置更新事件:
管理员修改设置
包含发生更改的设置
key显示
old_value和new_value以供比较可按
user_email筛选,以跟踪哪些管理员进行了更改
最佳实践
Webhook 端点实现
快速响应:您的端点应在 1 秒内响应,以避免超时。
异步处理:将审计日志排入队列以供处理,并立即响应
验证载荷:验证传入载荷的结构和内容
保护您的端点:使用 HTTPS 并验证身份验证标头
优雅处理故障:记录错误,但不返回可能导致重试的错误响应
数据保留与分析
长期存储:保留审计日志,用于合规性和安全性分析
索引键字段:为提高查询效率,请对
event_type、user_email、timestamp和session_id进行索引。关联事件:使用
session_id关联相关事件(查询和回答)监控模式:留意异常访问模式或可疑活动
定期导出:在 Webhook 系统之外保留审计日志的备份
安全注意事项
保护 Webhook URL:请妥善保管您的 Webhook URL 和身份验证令牌,确保其机密性。
定期轮换令牌:定期轮换您的身份验证令牌
监控 Webhook 故障:跟踪失败的交付,以检测端点问题
验证 IP 源地址:建议验证 Webhook 请求是否来自 Perplexity 的 IP 地址范围
PII 处理:审计日志包含用户电子邮件和 IP 地址,请根据您的隐私政策进行处理。
常见问题
如果我的组织中有不到 50 个席位,我可以使用此功能吗?
如果您的组织席位少于 50 个,您可以将至少一个席位升级为 Enterprise Max ,以访问您组织的 审计日志 。
我误将此功能激活,并被收取了额外席位的费用。 我该怎么办?
如果您误启用了 审计日志,且尚未准备好升级到 50+ 个席位,我们可以为您的账户调整账单,并撤销任何额外费用或付款。 请确保您已停用此功能,然后与我们联系。
2. 输入您的 Webhook URL 并点击 保存。
3. 为了提高安全性,您可以设置一个 Authorization Header ,用于验证对您的 Webhook URL 的所有请求。 除非您指定授权方案,否则您输入的值将作为 Bearer 令牌发送。
审计日志事件的 JSON 负载示例
/* 查询 */
{
event_type: "query"
timestamp: 2025-02-20T09:05:31
user_email: "john@perplexity.ai"
ip_address: "162.229.229.229"
user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"
metadata: {
query: "我们最近的渗透测试报告结果如何?"
}
}
/* 文件上传 */
{
event_type: "file_upload"
timestamp: 2025-02-20T09:05:31
user_email: "john@perplexity.ai"
ip_address: "162.229.229.229"
user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36"
metadata: {
file_name: "soc2_report.pdf"
file_uuid: "XXXXX"
space_name: "Security Reports"
space_uuid: "YYYYY"
}
}
常见问题
如果我的组织中有不到 50 个席位,我可以使用此功能吗?
如果您的组织的席位少于 50 个,您可以将至少一个席位升级到 Enterprise Max ,以访问您组织的审计日志。
我误将此功能激活,并被收取了额外席位的费用。
如果您不小心激活了审计日志,并且尚未准备好升级到 50+ 个席位,我们可以调整您账户的账单,并撤销任何额外的账单或付款。 请确保您已停用此功能,然后与我们联系。


