ai-business-write/技术文档/AI对话日志使用说明.md

5.5 KiB
Raw Permalink Blame History

AI对话日志使用说明

功能概述

系统已集成AI对话日志记录功能可以自动记录每次大模型调用的详细信息包括

  • 输入提示词prompt
  • API请求参数
  • API响应内容完整响应
  • 提取后的结构化数据
  • 错误信息(如果有)

日志文件位置

日志文件保存在项目根目录下的 logs/ai_conversations/ 目录中。

日志文件命名格式:conversation_YYYYMMDD_HHMMSS_mmm.json

例如:conversation_20241215_143025_123.json

日志文件格式

每个日志文件是一个JSON文件包含以下字段

{
  "timestamp": "2024-12-15T14:30:25.123456",
  "session_id": "session_1702627825123",
  "prompt": "请从以下输入文本中提取结构化信息...",
  "api_request": {
    "endpoint": "http://10.100.31.26:3001/v1/chat/completions",
    "model": "DeepSeek-R1-Distill-Llama-70B",
    "messages": [
      {
        "role": "system",
        "content": "..."
      },
      {
        "role": "user",
        "content": "..."
      }
    ],
    "temperature": 0.2,
    "max_tokens": 12000,
    "enable_thinking": true
  },
  "api_response": {
    "choices": [...],
    "usage": {...}
  },
  "extracted_data": {
    "target_name": "张三",
    "target_gender": "男",
    ...
  },
  "error": null,
  "success": true
}

启用/禁用日志记录

日志记录功能默认启用。可以通过环境变量控制:

方法1设置环境变量

# Windows
set AI_LOG_ENABLED=false

# Linux/Mac
export AI_LOG_ENABLED=false

方法2在代码中修改

编辑 services/ai_logger.py,修改 __init__ 方法中的默认值:

self.enabled = os.getenv('AI_LOG_ENABLED', 'false').lower() == 'true'  # 改为默认禁用

查看日志文件

方法1直接查看JSON文件

日志文件是标准的JSON格式可以用任何文本编辑器或JSON查看器打开。

方法2使用Python脚本查看

可以使用以下Python代码查看最近的日志

from services.ai_logger import get_ai_logger

logger = get_ai_logger()

# 获取最近的10条日志
recent_logs = logger.get_recent_logs(limit=10)
for log_file in recent_logs:
    print(f"日志文件: {log_file}")
    log_data = logger.read_log(log_file)
    if log_data:
        print(f"  时间: {log_data['timestamp']}")
        print(f"  成功: {log_data['success']}")
        if log_data.get('error'):
            print(f"  错误: {log_data['error']}")
        print()

方法3使用命令行工具

在项目根目录下,可以使用以下命令查看日志:

# Windows PowerShell
Get-ChildItem logs\ai_conversations\*.json | Sort-Object LastWriteTime -Descending | Select-Object -First 10

# Linux/Mac
ls -lt logs/ai_conversations/*.json | head -10

日志文件管理

自动清理

日志文件会按日期组织,建议定期清理旧日志文件以节省磁盘空间。

手动清理

可以删除指定日期之前的日志文件:

# Windows PowerShell - 删除7天前的日志
Get-ChildItem logs\ai_conversations\*.json | Where-Object {$_.LastWriteTime -lt (Get-Date).AddDays(-7)} | Remove-Item

# Linux/Mac - 删除7天前的日志
find logs/ai_conversations -name "*.json" -mtime +7 -delete

排查问题

查看失败的对话

查找包含错误的日志:

from services.ai_logger import get_ai_logger
import json

logger = get_ai_logger()
recent_logs = logger.get_recent_logs(limit=50)

for log_file in recent_logs:
    log_data = logger.read_log(log_file)
    if log_data and not log_data.get('success'):
        print(f"失败日志: {log_file}")
        print(f"错误: {log_data.get('error')}")
        print(f"提示词: {log_data.get('prompt')[:200]}...")
        print()

查看特定字段的提取情况

from services.ai_logger import get_ai_logger

logger = get_ai_logger()
recent_logs = logger.get_recent_logs(limit=20)

for log_file in recent_logs:
    log_data = logger.read_log(log_file)
    if log_data and log_data.get('extracted_data'):
        extracted = log_data['extracted_data']
        if 'target_gender' in extracted:
            print(f"日志: {log_file}")
            print(f"  性别: {extracted.get('target_gender', '(空)')}")
            print(f"  姓名: {extracted.get('target_name', '(空)')}")
            print()

注意事项

  1. 隐私和安全:日志文件可能包含敏感信息,请妥善保管,不要将日志文件提交到公共代码仓库。

  2. 磁盘空间:日志文件会持续增长,建议定期清理旧日志。

  3. 性能影响:日志记录是异步的,对性能影响很小,但如果大量调用,建议定期清理日志文件。

  4. 日志文件大小每个日志文件通常几KB到几十KB取决于响应内容的大小。

常见问题

Q: 日志文件在哪里?

A: 日志文件保存在 logs/ai_conversations/ 目录中。

Q: 如何禁用日志记录?

A: 设置环境变量 AI_LOG_ENABLED=false

Q: 日志文件会占用多少空间?

A: 每个日志文件通常几KB到几十KB取决于响应内容。如果每天有100次调用大约占用几MB空间。

Q: 可以自定义日志目录吗?

A: 可以,在创建 AILogger 实例时传入 log_dir 参数。

Q: 日志文件格式可以修改吗?

A: 可以,修改 services/ai_logger.py 中的 log_conversation 方法。

相关文件

  • services/ai_logger.py - 日志记录器实现
  • services/ai_service.py - AI服务集成日志记录
  • logs/ai_conversations/ - 日志文件目录