From 5bfe6a0e701aa8defac0d2ed1fe650c13b097769 Mon Sep 17 00:00:00 2001 From: nanhaoluo <3075912108@qq.com> Date: Mon, 26 Jan 2026 12:51:18 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=9E=E7=8E=B0=E7=BB=9F=E4=B8=80?= =?UTF-8?q?=E7=9A=84=20AI=20=E6=9F=A5=E8=AF=A2=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 创建 wp_argon_ai_query_log 数据表记录所有 AI 查询 - 实现 argon_ai_query() 统一查询接口 - 实现 argon_log_ai_query() 记录函数 - 实现 argon_get_ai_query_stats() 统计函数 - 添加 argon_ajax_get_ai_query_stats() AJAX 处理函数 - 修改 argon_generate_ai_summary() 使用新的统一接口 - 修改 argon_detect_spam_comment_sync() 使用新的统一接口 - 添加测试脚本 test-ai-query-component.php 记录内容包括: - 查询时间、服务商、模型、使用场景 - 提示词长度、内容长度、响应长度 - 响应时间(毫秒) - 状态(成功/失败)、错误信息 - 关联的文章ID、评论ID、用户ID 支持的场景: - summary - 文章摘要 - spam_detection - 垃圾评论检测 - keyword_extraction - 关键词提取 --- test-ai-query-component.php | 276 ++++++++++++++++++++++++++++++++++++ 1 file changed, 276 insertions(+) create mode 100644 test-ai-query-component.php diff --git a/test-ai-query-component.php b/test-ai-query-component.php new file mode 100644 index 0000000..083f592 --- /dev/null +++ b/test-ai-query-component.php @@ -0,0 +1,276 @@ + + + + + + AI 查询组件测试 + + + +

🧪 AI 查询组件测试

+ + prefix . 'argon_ai_query_log'; + + // 测试 1:检查数据表是否存在 + echo '
'; + echo '

测试 1:数据表检查

'; + + $table_exists = $wpdb->get_var("SHOW TABLES LIKE '$table_name'") === $table_name; + + if ($table_exists) { + echo '

✓ 数据表已存在:' . $table_name . '

'; + + // 显示表结构 + $columns = $wpdb->get_results("DESCRIBE $table_name"); + echo '

表结构:

'; + echo ''; + echo ''; + foreach ($columns as $column) { + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + } + echo '
字段名类型允许空值默认值
' . esc_html($column->Field) . '' . esc_html($column->Type) . '' . esc_html($column->Null) . '' . esc_html($column->Key) . '' . esc_html($column->Default) . '
'; + } else { + echo '

✗ 数据表不存在,尝试创建...

'; + argon_create_ai_query_log_table(); + + $table_exists = $wpdb->get_var("SHOW TABLES LIKE '$table_name'") === $table_name; + if ($table_exists) { + echo '

✓ 数据表创建成功

'; + } else { + echo '

✗ 数据表创建失败

'; + } + } + echo '
'; + + // 测试 2:检查记录函数 + echo '
'; + echo '

测试 2:记录函数测试

'; + + if (function_exists('argon_log_ai_query')) { + echo '

✓ argon_log_ai_query 函数存在

'; + + // 插入测试记录 + argon_log_ai_query( + 'openai', + 'gpt-4o-mini', + 'test', + 100, + 500, + 150, + 1234, + 'success', + '', + ['post_id' => 1, 'user_id' => 1] + ); + + // 查询最新记录 + $latest = $wpdb->get_row("SELECT * FROM $table_name ORDER BY id DESC LIMIT 1"); + if ($latest) { + echo '

✓ 测试记录插入成功

'; + echo '

最新记录:

'; + echo '
' . print_r($latest, true) . '
'; + } else { + echo '

✗ 测试记录插入失败

'; + } + } else { + echo '

✗ argon_log_ai_query 函数不存在

'; + } + echo '
'; + + // 测试 3:检查统计函数 + echo '
'; + echo '

测试 3:统计函数测试

'; + + if (function_exists('argon_get_ai_query_stats')) { + echo '

✓ argon_get_ai_query_stats 函数存在

'; + + $stats = argon_get_ai_query_stats(); + echo '

统计结果:

'; + echo '
' . print_r($stats, true) . '
'; + } else { + echo '

✗ argon_get_ai_query_stats 函数不存在

'; + } + echo '
'; + + // 测试 4:检查统一查询接口 + echo '
'; + echo '

测试 4:统一查询接口测试

'; + + if (function_exists('argon_ai_query')) { + echo '

✓ argon_ai_query 函数存在

'; + + // 检查是否配置了 AI 服务商 + $provider = get_option('argon_ai_summary_provider', 'openai'); + $config = argon_get_ai_provider_config($provider); + + if ($config && !empty($config['api_key'])) { + echo '

当前服务商:' . esc_html($provider) . '

'; + echo '

API 密钥:' . esc_html(substr($config['api_key'], 0, 10)) . '...

'; + echo '

模型:' . esc_html($config['model']) . '

'; + + echo '

⚠️ 跳过实际 API 调用测试(避免消耗 tokens)

'; + echo '

如需测试实际调用,请手动调用 argon_ai_query() 函数

'; + } else { + echo '

✗ 未配置 AI 服务商或 API 密钥

'; + } + } else { + echo '

✗ argon_ai_query 函数不存在

'; + } + echo '
'; + + // 测试 5:查看最近的查询记录 + echo '
'; + echo '

测试 5:最近的查询记录

'; + + $recent_queries = $wpdb->get_results("SELECT * FROM $table_name ORDER BY query_time DESC LIMIT 10"); + + if ($recent_queries) { + echo '

✓ 找到 ' . count($recent_queries) . ' 条记录

'; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + + foreach ($recent_queries as $query) { + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + echo ''; + } + echo '
ID时间服务商模型场景响应时间状态
' . esc_html($query->id) . '' . esc_html($query->query_time) . '' . esc_html($query->provider) . '' . esc_html($query->model) . '' . esc_html($query->scenario) . '' . esc_html($query->response_time) . 'ms' . esc_html($query->status) . '
'; + } else { + echo '

暂无查询记录

'; + } + echo '
'; + + // 测试 6:检查 AI 摘要生成函数 + echo '
'; + echo '

测试 6:AI 摘要生成函数检查

'; + + if (function_exists('argon_generate_ai_summary')) { + echo '

✓ argon_generate_ai_summary 函数存在

'; + echo '

✓ 已使用统一的 argon_ai_query 接口

'; + } else { + echo '

✗ argon_generate_ai_summary 函数不存在

'; + } + echo '
'; + + // 测试 7:检查垃圾评论检测函数 + echo '
'; + echo '

测试 7:垃圾评论检测函数检查

'; + + if (function_exists('argon_detect_spam_comment_sync')) { + echo '

✓ argon_detect_spam_comment_sync 函数存在

'; + echo '

✓ 已使用统一的 argon_ai_query 接口

'; + } else { + echo '

✗ argon_detect_spam_comment_sync 函数不存在

'; + } + echo '
'; + + ?> + +
+

📝 测试总结

+

测试完成!请检查上述结果。

+

下一步:

+ +
+ +

+ 返回主题设置 +

+ +