Files
ai_wht_B/log10bjh_wht_server_api_2512192346.log
“shengyudong” 5a384b694e 2026-1-6
2026-01-06 14:18:39 +08:00

2560 lines
214 KiB
Plaintext
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.

23:46:48 - article_server - INFO - 日志系统已启动 - 记录器: article_server
23:46:48 - article_server - INFO - 主日志文件: logs/article_server.log
23:46:48 - article_server - INFO - 错误日志文件: logs/article_error.log
23:46:48 - article_server - INFO - 日志保留策略: 每天午夜分割主日志保留3天
23:46:48 - article_server - INFO - 错误日志保留策略: 每天午夜分割保留9天
23:46:49 - article_server - INFO - 万花筒API服务模块已加载
23:47:14 - article_server - INFO - [API访问] POST /api/auth/login - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
23:47:14 - article_server - INFO - [用户登录] 开始处理登录请求, IP: 104.244.91.212
23:47:14 - article_server - INFO - [用户登录] 收到登录请求, 账号: 13621242430, IP: 104.244.91.212
23:47:14 - article_server - INFO - [用户登录] 开始在ai_users表查询用户, 账号: 13621242430
23:47:15 - article_server - INFO - 数据库连接成功,字符集设置完成
23:47:15 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:15 - article_server - INFO - [SQL语句]
SELECT id, enterprise_id, enterprise_name, username, phone, password,
real_name, role, status, is_bound_xhs, xhs_account
FROM ai_users
WHERE (phone = %s OR username = %s) AND status = 'active'
23:47:15 - article_server - INFO - [SQL参数] ('13621242430', '13621242430')
23:47:15 - article_server - INFO - [SQL结果] 查询完成,返回 2 条记录
23:47:15 - article_server - INFO - [SQL数据] 查询结果: [{'id': 4, 'enterprise_id': 1, 'enterprise_name': 'rwl企业4号', 'username': 'user004', 'phone': '13621242430', 'password': '240be518fabd2724ddb6f04eeb1da5967448d7e831c08c8fa822809f74c720a9', 'real_name': '饶文龙', 'role': 'enterprise', 'status': 'active', 'is_bound_xhs': 1, 'xhs_account': '小红书用户4'}, {'id': 10, 'enterprise_id': 10, 'enterprise_name': '测试企业10号', 'username': 'user010', 'phone': '13621242430', 'password': '256dfd66db93b7ce0d1e260b01971dffaafa1dadca903ed16defc4fba24be83b', 'real_name': '测试用户10', 'role': 'admin', 'status': 'active', 'is_bound_xhs': 1, 'xhs_account': '小红书用户'}]
23:47:15 - article_server - INFO - [用户登录] 查询到用户信息, 用户名: user004, 角色: enterprise, 企业: rwl企业4号, 企业ID: 1
23:47:15 - article_server - INFO - [用户登录] 开始验证密码, 账号: 13621242430
23:47:15 - article_server - INFO - [用户登录] 密码验证成功, 用户名: user004, 角色: enterprise
23:47:15 - article_server - INFO - [用户登录] 检测到企业角色, 开始获取企业详细信息, 企业ID: 1
23:47:15 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:15 - article_server - INFO - [SQL语句]
SELECT id, enterprise_ID, name, short_name, phone, email, status,
users_total, products_total, articles_total, published_total
FROM ai_enterprises
WHERE id = %s AND status = 'active'
23:47:15 - article_server - INFO - [SQL参数] (1,)
23:47:15 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:47:15 - article_server - INFO - [SQL数据] 查询结果: [{'id': 1, 'enterprise_ID': 'ENT-2024-0001', 'name': '乐航', 'short_name': '企业1222333', 'phone': '13800138001', 'email': 'raowenlong@vizee.cn', 'status': 'active', 'users_total': 1, 'products_total': 2, 'articles_total': 28, 'published_total': 0}]
23:47:15 - article_server - INFO - [用户登录] 获取企业信息成功, 企业名称: 乐航, 企业编号: ENT-2024-0001
23:47:15 - article_server - INFO - [用户登录] 开始生成token, 用户ID: 4, 角色: enterprise
23:47:15 - article_server - INFO - [Token生成] 用户: 13621242430, ID: 4, 角色: enterprise
23:47:15 - article_server - INFO - [用户登录成功] Token生成成功, 用户: user004, 角色: enterprise, 企业: rwl企业4号, IP: 104.244.91.212
23:47:15 - article_server - INFO - [API响应] POST /api/auth/login - IP: 104.244.91.212 - 状态码: 200
23:47:16 - article_server - INFO - [API访问] GET /api/dashboard/hot-products - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
23:47:16 - article_server - INFO - [Token验证成功] 用户ID: 4
23:47:16 - article_server - INFO - [API访问] GET /api/dashboard/overview - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
23:47:16 - article_server - INFO - [Token验证成功] 用户ID: 4
23:47:16 - article_server - INFO - [API访问] GET /api/dashboard/recent-publishes - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
23:47:16 - article_server - INFO - [Token验证成功] 用户ID: 4
23:47:16 - article_server - INFO - [API访问] GET /api/users/info - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
23:47:16 - article_server - INFO - [Token验证成功] 用户ID: 4
23:47:16 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 104.244.91.212
23:47:16 - article_server - INFO - [获取用户信息] 用户ID: 4, IP: 104.244.91.212
23:47:16 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:16 - article_server - INFO - [SQL语句]
SELECT r.product_id, p.name as product_name,
COUNT(*) as publishes,
ROUND(COUNT(*) * 100.0 / (SELECT COUNT(*) FROM ai_article_published_records WHERE enterprise_id = %s), 0) as percentage
FROM ai_article_published_records r
LEFT JOIN ai_products p ON r.product_id = p.id
WHERE r.enterprise_id = %s
GROUP BY r.product_id, p.name
ORDER BY publishes DESC
LIMIT %s
23:47:16 - article_server - INFO - [SQL参数] (1, 1, 4)
23:47:16 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
23:47:16 - article_server - INFO - [SQL数据] 查询结果: [{'product_id': 2, 'product_name': '保湿精华', 'publishes': 1, 'percentage': Decimal('33')}, {'product_id': 4, 'product_name': '口红套装', 'publishes': 1, 'percentage': Decimal('33')}, {'product_id': 5, 'product_name': '洗面奶', 'publishes': 1, 'percentage': Decimal('33')}]
23:47:16 - article_server - INFO - 获取热门产品成功
23:47:16 - article_server - INFO - [API响应] GET /api/dashboard/hot-products - IP: 104.244.91.212 - 状态码: 200
23:47:16 - article_server - INFO - 数据库连接成功,字符集设置完成
23:47:16 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:16 - article_server - INFO - [SQL语句]
SELECT users_total, products_total, articles_total, published_total
FROM ai_enterprises
WHERE id = %s
23:47:16 - article_server - INFO - [SQL参数] (1,)
23:47:16 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:47:16 - article_server - INFO - [SQL数据] 查询结果: [{'users_total': 1, 'products_total': 2, 'articles_total': 28, 'published_total': 0}]
23:47:16 - article_server - INFO - 数据库连接成功,字符集设置完成
23:47:16 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:16 - article_server - INFO - [SQL语句]
SELECT r.id, r.publish_time,
u.real_name as employee_name,
p.name as product_name,
'success' as status
FROM ai_article_published_records r
LEFT JOIN ai_users u ON r.created_user_id = u.id
LEFT JOIN ai_products p ON r.product_id = p.id
WHERE r.enterprise_id = %s
ORDER BY r.publish_time DESC
LIMIT %s
23:47:16 - article_server - INFO - [SQL参数] (1, 5)
23:47:16 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
23:47:16 - article_server - INFO - [SQL数据] 查询结果: [{'id': 7, 'publish_time': datetime.datetime(2025, 12, 16, 19, 32, 25), 'employee_name': '测试员工API', 'product_name': '洗面奶', 'status': 'success'}, {'id': 6, 'publish_time': datetime.datetime(2025, 12, 16, 11, 55, 56), 'employee_name': '测试员工API', 'product_name': '口红套装', 'status': 'success'}, {'id': 5, 'publish_time': datetime.datetime(2025, 12, 16, 10, 17, 8), 'employee_name': '测试员工API', 'product_name': '保湿精华', 'status': 'success'}]
23:47:16 - article_server - INFO - 数据库连接成功,字符集设置完成
23:47:16 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:16 - article_server - INFO - [SQL语句]
SELECT id, enterprise_id, enterprise_name, username, real_name, email, phone,
wechat_openid, wechat_unionid, xhs_cookie, xhs_phone, xhs_account,
is_bound_xhs, bound_at, department, role, status, created_at, updated_at
FROM ai_users
WHERE id = %s AND status != 'deleted'
23:47:16 - article_server - INFO - [SQL参数] (4,)
23:47:16 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:16 - article_server - INFO - [SQL语句]
SELECT COUNT(*) as month_published
FROM ai_article_published_records
WHERE enterprise_id = %s
AND YEAR(publish_time) = YEAR(CURDATE())
AND MONTH(publish_time) = MONTH(CURDATE())
23:47:16 - article_server - INFO - [SQL参数] (1,)
23:47:16 - article_server - INFO - 获取最近发布成功
23:47:16 - article_server - INFO - [API响应] GET /api/dashboard/recent-publishes - IP: 104.244.91.212 - 状态码: 200
23:47:17 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:47:17 - article_server - INFO - [SQL数据] 查询结果: [{'id': 4, 'enterprise_id': 1, 'enterprise_name': 'rwl企业4号', 'username': 'user004', 'real_name': '饶文龙', 'email': None, 'phone': '13621242430', 'wechat_openid': None, 'wechat_unionid': None, 'xhs_cookie': None, 'xhs_phone': '', 'xhs_account': '小红书用户4', 'is_bound_xhs': 1, 'bound_at': None, 'department': '技术部', 'role': 'enterprise', 'status': 'active', 'created_at': datetime.datetime(2025, 12, 12, 16, 58, 22), 'updated_at': datetime.datetime(2025, 12, 16, 13, 47, 4)}]
23:47:17 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:47:17 - article_server - INFO - [SQL数据] 查询结果: [{'month_published': 3}]
23:47:17 - article_server - INFO - [获取用户信息] 查询成功, 用户: user004, 角色: enterprise, 企业: rwl企业4号, IP: 104.244.91.212
23:47:17 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:17 - article_server - INFO - [SQL语句]
SELECT COUNT(*) as last_month_published
FROM ai_article_published_records
WHERE enterprise_id = %s
AND YEAR(publish_time) = YEAR(DATE_SUB(CURDATE(), INTERVAL 1 MONTH))
AND MONTH(publish_time) = MONTH(DATE_SUB(CURDATE(), INTERVAL 1 MONTH))
23:47:17 - article_server - INFO - [SQL参数] (1,)
23:47:17 - article_server - INFO - [SQL执行] 开始执行插入SQL
23:47:17 - article_server - INFO - [SQL语句]
INSERT INTO ai_logs
(user_id, action, target_type, target_id, description,
ip_address, user_agent, request_data, response_data,
status, error_message, created_at)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, NOW())
23:47:17 - article_server - INFO - [SQL参数] (4, 'get_user_info', 'user', 4, '查询用户信息: user004', '104.244.91.212', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', None, None, 'success', None)
23:47:17 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:47:17 - article_server - INFO - [SQL数据] 查询结果: [{'last_month_published': 0}]
23:47:17 - article_server - INFO - 获取工作台概览成功
23:47:17 - article_server - INFO - [API响应] GET /api/dashboard/overview - IP: 104.244.91.212 - 状态码: 200
23:47:17 - article_server - INFO - [SQL结果] 插入完成新记录ID: 149
23:47:17 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 4 | 目标: user#4 | 状态: success | IP: 104.244.91.212 | 日志ID: 149
23:47:17 - article_server - INFO - [API响应] GET /api/users/info - IP: 104.244.91.212 - 状态码: 200
23:47:24 - article_server - INFO - [API访问] GET /api/articles/list - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
23:47:24 - article_server - INFO - [Token验证成功] 用户ID: 4
23:47:24 - article_server - INFO - [获取文章列表] 开始处理请求, IP: 104.244.91.212
23:47:24 - article_server - INFO - [获取文章列表] 用户信息 - 用户ID: 4, 企业ID: 1, IP: 104.244.91.212
23:47:24 - article_server - INFO - [获取文章列表] 查询参数: page=1, pageSize=20, keyword=, product_id=, status=, 企业ID: 1, IP: 104.244.91.212
23:47:24 - article_server - INFO - [API访问] GET /api/prompts/list - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
23:47:24 - article_server - INFO - [Token验证成功] 用户ID: 4
23:47:24 - article_server - INFO - [API访问] GET /api/products/list - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
23:47:24 - article_server - INFO - [Token验证成功] 用户ID: 4
23:47:24 - article_server - INFO - [获取产品列表] 开始处理请求, IP: 104.244.91.212
23:47:24 - article_server - INFO - [获取产品列表] 用户信息 - 用户ID: 4, 企业ID: 1, IP: 104.244.91.212
23:47:24 - article_server - INFO - [获取产品列表] 查询参数: page=1, pageSize=100, keyword=, type=, status=, 企业ID: 1, IP: 104.244.91.212
23:47:24 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:24 - article_server - INFO - [SQL语句]
SELECT COUNT(*) as total
FROM ai_articles a
WHERE a.enterprise_id = %s
23:47:24 - article_server - INFO - [SQL参数] [1]
23:47:24 - article_server - INFO - [API访问] GET /api/articles/list_dashboard - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
23:47:24 - article_server - INFO - [Token验证成功] 用户ID: 4
23:47:24 - article_server - INFO - [文章仪表盘] 开始处理请求, IP: 104.244.91.212
23:47:24 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:47:24 - article_server - INFO - [SQL数据] 查询结果: [{'total': 28}]
23:47:24 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:24 - article_server - INFO - [SQL语句]
SELECT COUNT(id) as total
FROM ai_articles
WHERE enterprise_id = %s
23:47:24 - article_server - INFO - [SQL参数] (1,)
23:47:24 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:47:24 - article_server - INFO - [SQL数据] 查询结果: [{'total': 28}]
23:47:24 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:24 - article_server - INFO - [SQL语句]
SELECT a.id, a.batch_id, a.enterprise_id, a.product_id, a.topic_type_id,
a.prompt_workflow_id, a.topic, a.title, a.content, a.department,
a.departmentids, a.author_id, a.author_name, a.department_id, a.department_name,
a.created_user_id, a.review_user_id, a.publish_user_id, a.status, a.channel,
a.review_comment, a.publish_time, a.publish_link, a.baijiahao_id, a.baijiahao_status,
a.word_count, a.image_count, a.coze_tag, a.created_at, a.updated_at,
p.name as product_name,
pw.prompt_workflow_name as prompt_name
FROM ai_articles a
LEFT JOIN ai_products p ON a.product_id = p.id
LEFT JOIN ai_prompt_workflow pw ON a.prompt_workflow_id = pw.id
WHERE a.enterprise_id = %s
ORDER BY a.created_at DESC
LIMIT %s OFFSET %s
23:47:24 - article_server - INFO - [SQL参数] [1, 20, 0]
23:47:24 - article_server - INFO - [SQL结果] 查询完成,返回 20 条记录
23:47:24 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:24 - article_server - INFO - [SQL语句]
SELECT COUNT(id) as total
FROM ai_articles
WHERE enterprise_id = %s AND status = 'published_review'
23:47:24 - article_server - INFO - [SQL参数] (1,)
23:47:24 - article_server - INFO - 数据库连接成功,字符集设置完成
23:47:24 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:24 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_prompt_workflow WHERE enterprise_id = %s
23:47:24 - article_server - INFO - [SQL参数] (1,)
23:47:24 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:47:24 - article_server - INFO - [SQL数据] 查询结果: [{'total': 0}]
23:47:24 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:24 - article_server - INFO - [SQL语句]
SELECT id, article_id, image_id, image_url, image_thumb_url, image_tag_id,
sort_order, keywords_id, keywords_name, department_id,
department_name, image_source, created_at
FROM ai_article_images
WHERE article_id IN (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)
ORDER BY article_id, sort_order ASC, created_at ASC
23:47:24 - article_server - INFO - [SQL参数] [45, 46, 47, 42, 43, 44, 37, 38, 39, 40, 41, 32, 33, 34, 35, 36, 31, 30, 28, 26]
23:47:24 - article_server - INFO - 数据库连接成功,字符集设置完成
23:47:24 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:24 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_products WHERE enterprise_id = %s AND status != 'deleted'
23:47:24 - article_server - INFO - [SQL参数] [1]
23:47:24 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:47:24 - article_server - INFO - [SQL数据] 查询结果: [{'total': 3}]
23:47:24 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
23:47:24 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:47:24 - article_server - INFO - [SQL数据] 查询结果: [{'total': 5}]
23:47:24 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:24 - article_server - INFO - [SQL语句]
SELECT COUNT(id) as total
FROM ai_articles
WHERE enterprise_id = %s AND status = 'published'
23:47:24 - article_server - INFO - [SQL参数] (1,)
23:47:24 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:24 - article_server - INFO - [SQL语句]
SELECT id, prompt_workflow_name, workflow_id, content, usage_count, created_at, updated_at
FROM ai_prompt_workflow
WHERE enterprise_id = %s
ORDER BY created_at DESC
LIMIT %s OFFSET %s
23:47:24 - article_server - INFO - [SQL参数] (1, 100, 0)
23:47:24 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:47:24 - article_server - INFO - [SQL数据] 查询结果: [{'total': 0}]
23:47:24 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:24 - article_server - INFO - [SQL语句]
SELECT id, article_id, coze_tag, created_at
FROM ai_article_tags
WHERE article_id IN (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)
23:47:24 - article_server - INFO - [SQL参数] [45, 46, 47, 42, 43, 44, 37, 38, 39, 40, 41, 32, 33, 34, 35, 36, 31, 30, 28, 26]
23:47:24 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
23:47:24 - article_server - INFO - [SQL数据] 查询结果: [{'id': 25, 'prompt_workflow_name': 'Inject基础提示词', 'workflow_id': '7576997068138659846', 'content': '你是一个健康类自媒体的编辑每天需要撰写健康类内容。我将要给你一个topic这个topic是一个问句。请你先产生一个段落的回复然后再段展开回复。每个段落都需要用一个emoji开头。最后请生成tag。段落与段落之间空一行保证可读性。\n详细要求如下\n一、核心要求\n1.\t目标受众 普通大众,非专业人士。务必:\n¡\t避免使用专业术语和书面化表达\n¡\t内容安全限制\n\uf06e\t❌ 禁止提及任何人体私密部位或敏感功能\n\uf06e\t❌ 禁用可能引发恐慌的词汇(如"危险""致命"\n2.\t内容核心 围绕“主题”,聚焦病症、问题、危害或困扰, 解释原因、原理,介绍症状、类型,提供积极、实用的解决方案、改善建议或注意事项等有价值的内容均可。\n3.\t唯一性与实用性 生成的内容需确保信息准确(基于常识)且每次生成的内容不应与历史输出重复(针对同一主题多次生成时)。\n二、内容结构及具体要求\n\uf06c\t【首段提问】 (title)\n¡\t对应内容为{{title}}\n\n\uf06c\t【次段简答】 (short-answer)\n¡\t字数 60-120字。 \n **内容要求**\n 1. 第一句话必须直接回答{{title}}的提问可以拓展1-2句话\n 2. 直接明晰,不要太笼统,禁止罗里吧嗦\n 3. 段前不要emoji表情符号\n \n **✅ 合格示例**\n 发现HPV16或18阳性这通常意味着宫颈癌筛查结果显示存在感染。接下来一般会建议做阴道镜检查再根据检查的具体情况决定治疗方案。\n\n **❌ 不合格示例**\n • 使用emoji开头\n • 没有直接回答问题\n • 过于笼统泛泛而谈 \n\n\uf06c\t【分段细答】 (contents)\n¡\t数量要求2-3段。\n¡\t字数要求 60~100字/段。\n¡\t核心要求\n\uf06e\t语言口语化、自然流畅。\n\uf06e\t段落内容必须围绕核心观点展开根据不同情况分类详细阐述问题可以是具体可行的建议吃什么、做什么、注意什么等疾病的科普主要症状、影响、诱因等或者其它逻辑合理的内容也可以。\n\uf06e\t内容有一定的逻辑包括但不限于首先、其次、最后第一第二第三不仅、而且、还有初级、中级、高级。\n\uf06e\t每段内容均衡不超过五句话确保信息全面且易于消化。\n\uf06e\t分段细答部分应当是次段简答部分的延伸但用词不能和次段简答部分有太多重复请保持多样性。\n\uf06e\t 在生成回答前,必须执行以下创造性流程:\n\t\t结构性禁令排除法行文结构不得是“定义→成因→症状→治疗”或“是什么→为什么→怎么办”及其任何变体。\n\t\t动态自我审视核心步骤\n\t\t回顾主动审视历史内容中针对相同或相似主题已使用过的所有核心阐述逻辑。\n\t\t规避明确禁止重复或小幅修改上述任何逻辑。\n\t\t创新基于当前问题的具体内涵生成一个在本质上全新的、服务于核心问题的最佳解释路径。该路径必须与所有已回顾的逻辑存在根本性差异。\n\t\t输出确认最终采用的逻辑结构应是本次对话上下文中一次独特的、未经使用的创造性表达形式。\n\n\uf06c\t【标签】 (tags)\n¡\t**单个关键词字数4-8个字。\n¡\t内容* (1)根据正文内容生成5个内容强相关tag (2)标签格式:每个关键词前后都有# (例: #养生小知识# #中医养生##习惯养成# #健康养生#\n三、变量输入\n\uf06c\t主题 {{title}}\n四、最终安全规则\n4.\t全篇禁止出现人体私密部位描述\n5.\t关键安全信息重复出现≥2次\n6.\t每句话≤20字复合句用逗号分隔\n7、不能出现 "下面就给大家仔细说说",“下面具体讲讲”,话术\n', 'usage_count': 17, 'created_at': datetime.datetime(2025, 12, 12, 20, 53, 9), 'updated_at': datetime.datetime(2025, 12, 18, 12, 36, 57)}, {'id': 14, 'prompt_workflow_name': '测试提示词', 'workflow_id': 'WF-CC8BB759', 'content': '这是一个测试提示词模板...', 'usage_count': 2, 'created_at': datetime.datetime(2025, 12, 12, 17, 41, 22), 'updated_at': datetime.datetime(2025, 12, 12, 17, 51, 54)}, {'id': 1, 'prompt_workflow_name': '种草分享型', 'workflow_id': 'WF-001', 'content': '你是一个小红书种草达人,请根据产品信息写一篇真实、有感染力的种草笔记...', 'usage_count': 0, 'created_at': datetime.datetime(2025, 12, 12, 16, 58, 22), 'updated_at': datetime.datetime(2025, 12, 12, 16, 58, 22)}]
23:47:24 - article_server - INFO - [文章仪表盘] 查询成功, 企业ID: 1, 总数: 28, 可发: 0, 已发: 0, IP: 104.244.91.212
23:47:24 - article_server - INFO - [API响应] GET /api/articles/list_dashboard - IP: 104.244.91.212 - 状态码: 200
23:47:24 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:24 - article_server - INFO - [SQL语句]
SELECT p.id, p.name, p.type_name, p.knowledge, p.status,
p.articles_total, p.published_total,
p.image_url, p.image_thumbnail_url,
p.created_at, p.updated_at
FROM ai_products p
WHERE enterprise_id = %s AND status != 'deleted'
ORDER BY p.created_at DESC
LIMIT %s OFFSET %s
23:47:24 - article_server - INFO - [SQL参数] [1, 100, 0]
23:47:24 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
23:47:24 - article_server - INFO - [SQL数据] 查询结果: [{'id': 1, 'article_id': 46, 'coze_tag': '#提肛运动效果# #前列腺增生# #提肛练习方法# #辅助前列腺治疗# #前列腺健康#', 'created_at': datetime.datetime(2025, 12, 18, 12, 40, 2)}, {'id': 2, 'article_id': 47, 'coze_tag': '#前列腺增生# #保守治疗# #手术治疗# #病情判断# #排尿问题#', 'created_at': datetime.datetime(2025, 12, 18, 12, 40, 3)}, {'id': 3, 'article_id': 45, 'coze_tag': '#前列腺增生# #疾病病因# #年龄因素# #激素失衡# #生活习惯#', 'created_at': datetime.datetime(2025, 12, 18, 12, 40, 4)}]
23:47:24 - article_server - INFO - [SQL结果] 查询完成,返回 5 条记录
23:47:24 - article_server - INFO - [获取文章列表] 查询成功, 总数: 28, 当前页: 1, 每页: 20, 返回数量: 20, 企业ID: 1, IP: 104.244.91.212
23:47:24 - article_server - INFO - [API响应] GET /api/articles/list - IP: 104.244.91.212 - 状态码: 200
23:47:24 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:24 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
23:47:24 - article_server - INFO - [SQL参数] (25,)
23:47:24 - article_server - INFO - [SQL结果] 查询完成,返回 2 条记录
23:47:24 - article_server - INFO - [SQL数据] 查询结果: [{'id': 14, 'tag_name': '去重'}, {'id': 15, 'tag_name': '基础提示词'}]
23:47:24 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:24 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
23:47:24 - article_server - INFO - [SQL参数] (25,)
23:47:24 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:24 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
23:47:24 - article_server - INFO - [SQL参数] (14,)
23:47:24 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
23:47:24 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
23:47:24 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:24 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
23:47:24 - article_server - INFO - [SQL参数] (13,)
23:47:24 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:24 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
23:47:24 - article_server - INFO - [SQL参数] (1,)
23:47:24 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
23:47:24 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
23:47:24 - article_server - INFO - 获取提示词列表成功,总数: 3
23:47:24 - article_server - INFO - [API响应] GET /api/prompts/list - IP: 104.244.91.212 - 状态码: 200
23:47:24 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:24 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
23:47:24 - article_server - INFO - [SQL参数] (12,)
23:47:24 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
23:47:24 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:24 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
23:47:24 - article_server - INFO - [SQL参数] (11,)
23:47:24 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
23:47:25 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:25 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
23:47:25 - article_server - INFO - [SQL参数] (1,)
23:47:25 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:47:25 - article_server - INFO - [SQL数据] 查询结果: [{'id': 1, 'tag_name': '保湿'}]
23:47:25 - article_server - INFO - [获取产品列表] 查询成功, 总数: 5, 当前页: 1, 每页: 100, 返回数量: 5, 企业ID: 1, IP: 104.244.91.212
23:47:25 - article_server - INFO - [API响应] GET /api/products/list - IP: 104.244.91.212 - 状态码: 200
23:47:30 - article_server - INFO - [API访问] GET /api/prompts/list - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
23:47:30 - article_server - INFO - [Token验证成功] 用户ID: 4
23:47:30 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:30 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_prompt_workflow WHERE enterprise_id = %s
23:47:30 - article_server - INFO - [SQL参数] (1,)
23:47:30 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:47:30 - article_server - INFO - [SQL数据] 查询结果: [{'total': 3}]
23:47:30 - article_server - INFO - [API访问] GET /api/prompts/tags/list - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
23:47:30 - article_server - INFO - [Token验证成功] 用户ID: 4
23:47:30 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:30 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_prompt_tags WHERE enterprise_id = %s
23:47:30 - article_server - INFO - [SQL参数] [1]
23:47:30 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:30 - article_server - INFO - [SQL语句]
SELECT id, prompt_workflow_name, workflow_id, content, usage_count, created_at, updated_at
FROM ai_prompt_workflow
WHERE enterprise_id = %s
ORDER BY created_at DESC
LIMIT %s OFFSET %s
23:47:30 - article_server - INFO - [SQL参数] (1, 20, 0)
23:47:30 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:47:30 - article_server - INFO - [SQL数据] 查询结果: [{'total': 2}]
23:47:30 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
23:47:30 - article_server - INFO - [SQL数据] 查询结果: [{'id': 25, 'prompt_workflow_name': 'Inject基础提示词', 'workflow_id': '7576997068138659846', 'content': '你是一个健康类自媒体的编辑每天需要撰写健康类内容。我将要给你一个topic这个topic是一个问句。请你先产生一个段落的回复然后再段展开回复。每个段落都需要用一个emoji开头。最后请生成tag。段落与段落之间空一行保证可读性。\n详细要求如下\n一、核心要求\n1.\t目标受众 普通大众,非专业人士。务必:\n¡\t避免使用专业术语和书面化表达\n¡\t内容安全限制\n\uf06e\t❌ 禁止提及任何人体私密部位或敏感功能\n\uf06e\t❌ 禁用可能引发恐慌的词汇(如"危险""致命"\n2.\t内容核心 围绕“主题”,聚焦病症、问题、危害或困扰, 解释原因、原理,介绍症状、类型,提供积极、实用的解决方案、改善建议或注意事项等有价值的内容均可。\n3.\t唯一性与实用性 生成的内容需确保信息准确(基于常识)且每次生成的内容不应与历史输出重复(针对同一主题多次生成时)。\n二、内容结构及具体要求\n\uf06c\t【首段提问】 (title)\n¡\t对应内容为{{title}}\n\n\uf06c\t【次段简答】 (short-answer)\n¡\t字数 60-120字。 \n **内容要求**\n 1. 第一句话必须直接回答{{title}}的提问可以拓展1-2句话\n 2. 直接明晰,不要太笼统,禁止罗里吧嗦\n 3. 段前不要emoji表情符号\n \n **✅ 合格示例**\n 发现HPV16或18阳性这通常意味着宫颈癌筛查结果显示存在感染。接下来一般会建议做阴道镜检查再根据检查的具体情况决定治疗方案。\n\n **❌ 不合格示例**\n • 使用emoji开头\n • 没有直接回答问题\n • 过于笼统泛泛而谈 \n\n\uf06c\t【分段细答】 (contents)\n¡\t数量要求2-3段。\n¡\t字数要求 60~100字/段。\n¡\t核心要求\n\uf06e\t语言口语化、自然流畅。\n\uf06e\t段落内容必须围绕核心观点展开根据不同情况分类详细阐述问题可以是具体可行的建议吃什么、做什么、注意什么等疾病的科普主要症状、影响、诱因等或者其它逻辑合理的内容也可以。\n\uf06e\t内容有一定的逻辑包括但不限于首先、其次、最后第一第二第三不仅、而且、还有初级、中级、高级。\n\uf06e\t每段内容均衡不超过五句话确保信息全面且易于消化。\n\uf06e\t分段细答部分应当是次段简答部分的延伸但用词不能和次段简答部分有太多重复请保持多样性。\n\uf06e\t 在生成回答前,必须执行以下创造性流程:\n\t\t结构性禁令排除法行文结构不得是“定义→成因→症状→治疗”或“是什么→为什么→怎么办”及其任何变体。\n\t\t动态自我审视核心步骤\n\t\t回顾主动审视历史内容中针对相同或相似主题已使用过的所有核心阐述逻辑。\n\t\t规避明确禁止重复或小幅修改上述任何逻辑。\n\t\t创新基于当前问题的具体内涵生成一个在本质上全新的、服务于核心问题的最佳解释路径。该路径必须与所有已回顾的逻辑存在根本性差异。\n\t\t输出确认最终采用的逻辑结构应是本次对话上下文中一次独特的、未经使用的创造性表达形式。\n\n\uf06c\t【标签】 (tags)\n¡\t**单个关键词字数4-8个字。\n¡\t内容* (1)根据正文内容生成5个内容强相关tag (2)标签格式:每个关键词前后都有# (例: #养生小知识# #中医养生##习惯养成# #健康养生#\n三、变量输入\n\uf06c\t主题 {{title}}\n四、最终安全规则\n4.\t全篇禁止出现人体私密部位描述\n5.\t关键安全信息重复出现≥2次\n6.\t每句话≤20字复合句用逗号分隔\n7、不能出现 "下面就给大家仔细说说",“下面具体讲讲”,话术\n', 'usage_count': 17, 'created_at': datetime.datetime(2025, 12, 12, 20, 53, 9), 'updated_at': datetime.datetime(2025, 12, 18, 12, 36, 57)}, {'id': 14, 'prompt_workflow_name': '测试提示词', 'workflow_id': 'WF-CC8BB759', 'content': '这是一个测试提示词模板...', 'usage_count': 2, 'created_at': datetime.datetime(2025, 12, 12, 17, 41, 22), 'updated_at': datetime.datetime(2025, 12, 12, 17, 51, 54)}, {'id': 1, 'prompt_workflow_name': '种草分享型', 'workflow_id': 'WF-001', 'content': '你是一个小红书种草达人,请根据产品信息写一篇真实、有感染力的种草笔记...', 'usage_count': 0, 'created_at': datetime.datetime(2025, 12, 12, 16, 58, 22), 'updated_at': datetime.datetime(2025, 12, 12, 16, 58, 22)}]
23:47:30 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:30 - article_server - INFO - [SQL语句]
SELECT id, tag_name, created_user_id, created_at, updated_at
FROM ai_prompt_tags
WHERE enterprise_id = %s
ORDER BY created_at DESC
LIMIT %s OFFSET %s
23:47:30 - article_server - INFO - [SQL参数] [1, 100, 0]
23:47:30 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:30 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
23:47:30 - article_server - INFO - [SQL参数] (25,)
23:47:30 - article_server - INFO - [SQL结果] 查询完成,返回 2 条记录
23:47:30 - article_server - INFO - [SQL数据] 查询结果: [{'id': 15, 'tag_name': '基础提示词', 'created_user_id': 4, 'created_at': datetime.datetime(2025, 12, 16, 14, 21, 32), 'updated_at': datetime.datetime(2025, 12, 16, 14, 21, 32)}, {'id': 14, 'tag_name': '去重', 'created_user_id': 4, 'created_at': datetime.datetime(2025, 12, 16, 14, 21, 32), 'updated_at': datetime.datetime(2025, 12, 16, 14, 21, 32)}]
23:47:30 - article_server - INFO - [SQL结果] 查询完成,返回 2 条记录
23:47:30 - article_server - INFO - [SQL数据] 查询结果: [{'id': 14, 'tag_name': '去重'}, {'id': 15, 'tag_name': '基础提示词'}]
23:47:30 - article_server - INFO - 获取标签列表成功,总数: 2
23:47:30 - article_server - INFO - [API响应] GET /api/prompts/tags/list - IP: 104.244.91.212 - 状态码: 200
23:47:30 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:30 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
23:47:30 - article_server - INFO - [SQL参数] (14,)
23:47:30 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
23:47:30 - article_server - INFO - [API访问] GET /api/articles/list - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
23:47:30 - article_server - INFO - [Token验证成功] 用户ID: 4
23:47:30 - article_server - INFO - [获取文章列表] 开始处理请求, IP: 104.244.91.212
23:47:30 - article_server - INFO - [获取文章列表] 用户信息 - 用户ID: 4, 企业ID: 1, IP: 104.244.91.212
23:47:30 - article_server - INFO - [获取文章列表] 查询参数: page=1, pageSize=20, keyword=, product_id=, status=, 企业ID: 1, IP: 104.244.91.212
23:47:30 - article_server - INFO - [API访问] GET /api/articles/list_dashboard - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
23:47:30 - article_server - INFO - [Token验证成功] 用户ID: 4
23:47:30 - article_server - INFO - [文章仪表盘] 开始处理请求, IP: 104.244.91.212
23:47:30 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:30 - article_server - INFO - [SQL语句]
SELECT COUNT(*) as total
FROM ai_articles a
WHERE a.enterprise_id = %s
23:47:30 - article_server - INFO - [SQL参数] [1]
23:47:30 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:30 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
23:47:30 - article_server - INFO - [SQL参数] (1,)
23:47:30 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:30 - article_server - INFO - [SQL语句]
SELECT COUNT(id) as total
FROM ai_articles
WHERE enterprise_id = %s
23:47:30 - article_server - INFO - [SQL参数] (1,)
23:47:30 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:47:30 - article_server - INFO - [SQL数据] 查询结果: [{'total': 28}]
23:47:30 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
23:47:30 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:47:30 - article_server - INFO - [SQL数据] 查询结果: [{'total': 28}]
23:47:30 - article_server - INFO - 获取提示词列表成功,总数: 3
23:47:30 - article_server - INFO - [API响应] GET /api/prompts/list - IP: 104.244.91.212 - 状态码: 200
23:47:30 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:30 - article_server - INFO - [SQL语句]
SELECT a.id, a.batch_id, a.enterprise_id, a.product_id, a.topic_type_id,
a.prompt_workflow_id, a.topic, a.title, a.content, a.department,
a.departmentids, a.author_id, a.author_name, a.department_id, a.department_name,
a.created_user_id, a.review_user_id, a.publish_user_id, a.status, a.channel,
a.review_comment, a.publish_time, a.publish_link, a.baijiahao_id, a.baijiahao_status,
a.word_count, a.image_count, a.coze_tag, a.created_at, a.updated_at,
p.name as product_name,
pw.prompt_workflow_name as prompt_name
FROM ai_articles a
LEFT JOIN ai_products p ON a.product_id = p.id
LEFT JOIN ai_prompt_workflow pw ON a.prompt_workflow_id = pw.id
WHERE a.enterprise_id = %s
ORDER BY a.created_at DESC
LIMIT %s OFFSET %s
23:47:30 - article_server - INFO - [SQL参数] [1, 20, 0]
23:47:30 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:30 - article_server - INFO - [SQL语句]
SELECT COUNT(id) as total
FROM ai_articles
WHERE enterprise_id = %s AND status = 'published_review'
23:47:30 - article_server - INFO - [SQL参数] (1,)
23:47:30 - article_server - INFO - [SQL结果] 查询完成,返回 20 条记录
23:47:30 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:47:30 - article_server - INFO - [SQL数据] 查询结果: [{'total': 0}]
23:47:30 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:30 - article_server - INFO - [SQL语句]
SELECT id, article_id, image_id, image_url, image_thumb_url, image_tag_id,
sort_order, keywords_id, keywords_name, department_id,
department_name, image_source, created_at
FROM ai_article_images
WHERE article_id IN (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)
ORDER BY article_id, sort_order ASC, created_at ASC
23:47:30 - article_server - INFO - [SQL参数] [45, 46, 47, 42, 43, 44, 37, 38, 39, 40, 41, 32, 33, 34, 35, 36, 31, 30, 28, 26]
23:47:30 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
23:47:30 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:30 - article_server - INFO - [SQL语句]
SELECT COUNT(id) as total
FROM ai_articles
WHERE enterprise_id = %s AND status = 'published'
23:47:30 - article_server - INFO - [SQL参数] (1,)
23:47:30 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:47:30 - article_server - INFO - [SQL数据] 查询结果: [{'total': 0}]
23:47:30 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:30 - article_server - INFO - [SQL语句]
SELECT id, article_id, coze_tag, created_at
FROM ai_article_tags
WHERE article_id IN (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)
23:47:30 - article_server - INFO - [SQL参数] [45, 46, 47, 42, 43, 44, 37, 38, 39, 40, 41, 32, 33, 34, 35, 36, 31, 30, 28, 26]
23:47:30 - article_server - INFO - [文章仪表盘] 查询成功, 企业ID: 1, 总数: 28, 可发: 0, 已发: 0, IP: 104.244.91.212
23:47:30 - article_server - INFO - [API响应] GET /api/articles/list_dashboard - IP: 104.244.91.212 - 状态码: 200
23:47:30 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
23:47:30 - article_server - INFO - [SQL数据] 查询结果: [{'id': 1, 'article_id': 46, 'coze_tag': '#提肛运动效果# #前列腺增生# #提肛练习方法# #辅助前列腺治疗# #前列腺健康#', 'created_at': datetime.datetime(2025, 12, 18, 12, 40, 2)}, {'id': 2, 'article_id': 47, 'coze_tag': '#前列腺增生# #保守治疗# #手术治疗# #病情判断# #排尿问题#', 'created_at': datetime.datetime(2025, 12, 18, 12, 40, 3)}, {'id': 3, 'article_id': 45, 'coze_tag': '#前列腺增生# #疾病病因# #年龄因素# #激素失衡# #生活习惯#', 'created_at': datetime.datetime(2025, 12, 18, 12, 40, 4)}]
23:47:30 - article_server - INFO - [获取文章列表] 查询成功, 总数: 28, 当前页: 1, 每页: 20, 返回数量: 20, 企业ID: 1, IP: 104.244.91.212
23:47:30 - article_server - INFO - [API响应] GET /api/articles/list - IP: 104.244.91.212 - 状态码: 200
23:47:30 - article_server - INFO - [API访问] GET /api/products/list - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
23:47:30 - article_server - INFO - [Token验证成功] 用户ID: 4
23:47:30 - article_server - INFO - [获取产品列表] 开始处理请求, IP: 104.244.91.212
23:47:30 - article_server - INFO - [获取产品列表] 用户信息 - 用户ID: 4, 企业ID: 1, IP: 104.244.91.212
23:47:30 - article_server - INFO - [获取产品列表] 查询参数: page=1, pageSize=100, keyword=, type=, status=, 企业ID: 1, IP: 104.244.91.212
23:47:30 - article_server - INFO - [API访问] GET /api/prompts/list - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
23:47:30 - article_server - INFO - [Token验证成功] 用户ID: 4
23:47:30 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:30 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_products WHERE enterprise_id = %s AND status != 'deleted'
23:47:30 - article_server - INFO - [SQL参数] [1]
23:47:30 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:30 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_prompt_workflow WHERE enterprise_id = %s
23:47:30 - article_server - INFO - [SQL参数] (1,)
23:47:30 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:47:30 - article_server - INFO - [SQL数据] 查询结果: [{'total': 5}]
23:47:30 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:47:30 - article_server - INFO - [SQL数据] 查询结果: [{'total': 3}]
23:47:30 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:30 - article_server - INFO - [SQL语句]
SELECT p.id, p.name, p.type_name, p.knowledge, p.status,
p.articles_total, p.published_total,
p.image_url, p.image_thumbnail_url,
p.created_at, p.updated_at
FROM ai_products p
WHERE enterprise_id = %s AND status != 'deleted'
ORDER BY p.created_at DESC
LIMIT %s OFFSET %s
23:47:30 - article_server - INFO - [SQL参数] [1, 100, 0]
23:47:30 - article_server - INFO - [SQL结果] 查询完成,返回 5 条记录
23:47:30 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:30 - article_server - INFO - [SQL语句]
SELECT id, prompt_workflow_name, workflow_id, content, usage_count, created_at, updated_at
FROM ai_prompt_workflow
WHERE enterprise_id = %s
ORDER BY created_at DESC
LIMIT %s OFFSET %s
23:47:30 - article_server - INFO - [SQL参数] (1, 100, 0)
23:47:30 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
23:47:30 - article_server - INFO - [SQL数据] 查询结果: [{'id': 25, 'prompt_workflow_name': 'Inject基础提示词', 'workflow_id': '7576997068138659846', 'content': '你是一个健康类自媒体的编辑每天需要撰写健康类内容。我将要给你一个topic这个topic是一个问句。请你先产生一个段落的回复然后再段展开回复。每个段落都需要用一个emoji开头。最后请生成tag。段落与段落之间空一行保证可读性。\n详细要求如下\n一、核心要求\n1.\t目标受众 普通大众,非专业人士。务必:\n¡\t避免使用专业术语和书面化表达\n¡\t内容安全限制\n\uf06e\t❌ 禁止提及任何人体私密部位或敏感功能\n\uf06e\t❌ 禁用可能引发恐慌的词汇(如"危险""致命"\n2.\t内容核心 围绕“主题”,聚焦病症、问题、危害或困扰, 解释原因、原理,介绍症状、类型,提供积极、实用的解决方案、改善建议或注意事项等有价值的内容均可。\n3.\t唯一性与实用性 生成的内容需确保信息准确(基于常识)且每次生成的内容不应与历史输出重复(针对同一主题多次生成时)。\n二、内容结构及具体要求\n\uf06c\t【首段提问】 (title)\n¡\t对应内容为{{title}}\n\n\uf06c\t【次段简答】 (short-answer)\n¡\t字数 60-120字。 \n **内容要求**\n 1. 第一句话必须直接回答{{title}}的提问可以拓展1-2句话\n 2. 直接明晰,不要太笼统,禁止罗里吧嗦\n 3. 段前不要emoji表情符号\n \n **✅ 合格示例**\n 发现HPV16或18阳性这通常意味着宫颈癌筛查结果显示存在感染。接下来一般会建议做阴道镜检查再根据检查的具体情况决定治疗方案。\n\n **❌ 不合格示例**\n • 使用emoji开头\n • 没有直接回答问题\n • 过于笼统泛泛而谈 \n\n\uf06c\t【分段细答】 (contents)\n¡\t数量要求2-3段。\n¡\t字数要求 60~100字/段。\n¡\t核心要求\n\uf06e\t语言口语化、自然流畅。\n\uf06e\t段落内容必须围绕核心观点展开根据不同情况分类详细阐述问题可以是具体可行的建议吃什么、做什么、注意什么等疾病的科普主要症状、影响、诱因等或者其它逻辑合理的内容也可以。\n\uf06e\t内容有一定的逻辑包括但不限于首先、其次、最后第一第二第三不仅、而且、还有初级、中级、高级。\n\uf06e\t每段内容均衡不超过五句话确保信息全面且易于消化。\n\uf06e\t分段细答部分应当是次段简答部分的延伸但用词不能和次段简答部分有太多重复请保持多样性。\n\uf06e\t 在生成回答前,必须执行以下创造性流程:\n\t\t结构性禁令排除法行文结构不得是“定义→成因→症状→治疗”或“是什么→为什么→怎么办”及其任何变体。\n\t\t动态自我审视核心步骤\n\t\t回顾主动审视历史内容中针对相同或相似主题已使用过的所有核心阐述逻辑。\n\t\t规避明确禁止重复或小幅修改上述任何逻辑。\n\t\t创新基于当前问题的具体内涵生成一个在本质上全新的、服务于核心问题的最佳解释路径。该路径必须与所有已回顾的逻辑存在根本性差异。\n\t\t输出确认最终采用的逻辑结构应是本次对话上下文中一次独特的、未经使用的创造性表达形式。\n\n\uf06c\t【标签】 (tags)\n¡\t**单个关键词字数4-8个字。\n¡\t内容* (1)根据正文内容生成5个内容强相关tag (2)标签格式:每个关键词前后都有# (例: #养生小知识# #中医养生##习惯养成# #健康养生#\n三、变量输入\n\uf06c\t主题 {{title}}\n四、最终安全规则\n4.\t全篇禁止出现人体私密部位描述\n5.\t关键安全信息重复出现≥2次\n6.\t每句话≤20字复合句用逗号分隔\n7、不能出现 "下面就给大家仔细说说",“下面具体讲讲”,话术\n', 'usage_count': 17, 'created_at': datetime.datetime(2025, 12, 12, 20, 53, 9), 'updated_at': datetime.datetime(2025, 12, 18, 12, 36, 57)}, {'id': 14, 'prompt_workflow_name': '测试提示词', 'workflow_id': 'WF-CC8BB759', 'content': '这是一个测试提示词模板...', 'usage_count': 2, 'created_at': datetime.datetime(2025, 12, 12, 17, 41, 22), 'updated_at': datetime.datetime(2025, 12, 12, 17, 51, 54)}, {'id': 1, 'prompt_workflow_name': '种草分享型', 'workflow_id': 'WF-001', 'content': '你是一个小红书种草达人,请根据产品信息写一篇真实、有感染力的种草笔记...', 'usage_count': 0, 'created_at': datetime.datetime(2025, 12, 12, 16, 58, 22), 'updated_at': datetime.datetime(2025, 12, 12, 16, 58, 22)}]
23:47:30 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:30 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
23:47:30 - article_server - INFO - [SQL参数] (25,)
23:47:30 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
23:47:30 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:30 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
23:47:30 - article_server - INFO - [SQL参数] (25,)
23:47:30 - article_server - INFO - [SQL结果] 查询完成,返回 2 条记录
23:47:30 - article_server - INFO - [SQL数据] 查询结果: [{'id': 14, 'tag_name': '去重'}, {'id': 15, 'tag_name': '基础提示词'}]
23:47:30 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:30 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
23:47:30 - article_server - INFO - [SQL参数] (13,)
23:47:30 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
23:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:31 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
23:47:31 - article_server - INFO - [SQL参数] (14,)
23:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:31 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
23:47:31 - article_server - INFO - [SQL参数] (12,)
23:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
23:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
23:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:31 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
23:47:31 - article_server - INFO - [SQL参数] (1,)
23:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:31 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
23:47:31 - article_server - INFO - [SQL参数] (11,)
23:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
23:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
23:47:31 - article_server - INFO - 获取提示词列表成功,总数: 3
23:47:31 - article_server - INFO - [API响应] GET /api/prompts/list - IP: 104.244.91.212 - 状态码: 200
23:47:31 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:47:31 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
23:47:31 - article_server - INFO - [SQL参数] (1,)
23:47:31 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:47:31 - article_server - INFO - [SQL数据] 查询结果: [{'id': 1, 'tag_name': '保湿'}]
23:47:31 - article_server - INFO - [获取产品列表] 查询成功, 总数: 5, 当前页: 1, 每页: 100, 返回数量: 5, 企业ID: 1, IP: 104.244.91.212
23:47:31 - article_server - INFO - [API响应] GET /api/products/list - IP: 104.244.91.212 - 状态码: 200
23:48:03 - article_server - INFO - [API访问] POST /api/articles/generate - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
23:48:03 - article_server - INFO - [Token验证成功] 用户ID: 4
23:48:03 - article_server - INFO - [生成文案] 开始处理生成文案请求, IP: 104.244.91.212
23:48:03 - article_server - INFO - [生成文案] 用户信息 - 用户ID: 4, 企业ID: 1, IP: 104.244.91.212
23:48:03 - article_server - INFO - [生成文案] 收到生成请求, 产品ID: 25, 提示词ID: 25, 主题数: 3, 企业ID: 1, IP: 104.244.91.212
23:48:03 - article_server - INFO - [生成文案] 验证产品是否存在, 产品ID: 25, 企业ID: 1
23:48:03 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:03 - article_server - INFO - [SQL语句] SELECT id, name FROM ai_products WHERE id = %s AND enterprise_id = %s
23:48:03 - article_server - INFO - [SQL参数] (25, 1)
23:48:03 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:48:03 - article_server - INFO - [SQL数据] 查询结果: [{'id': 25, 'name': '健康类自媒体'}]
23:48:03 - article_server - INFO - [生成文案] 产品验证成功, 产品名称: 健康类自媒体, ID: 25
23:48:03 - article_server - INFO - [生成文案] 验证提示词是否存在, 提示词ID: 25, 企业ID: 1
23:48:03 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:03 - article_server - INFO - [SQL语句] SELECT id FROM ai_prompt_workflow WHERE id = %s AND enterprise_id = %s
23:48:03 - article_server - INFO - [SQL参数] (25, 1)
23:48:03 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:48:03 - article_server - INFO - [SQL数据] 查询结果: [{'id': 25}]
23:48:03 - article_server - INFO - [生成文案] 提示词验证成功, ID: 25
23:48:03 - article_server - INFO - [生成文案] 开始生成文案, 主题数量: 3, 产品: 健康类自媒体, 企业ID: 1
23:48:03 - article_server - INFO - [批量生成文章] 生成batch_id: 1766159283618214, 待处理数据行数: 3
23:48:03 - article_server - INFO - [生成文案] 开始生成主题文案: 包皮炎会传染给女性吗?, 产品: 健康类自媒体
23:48:03 - article_server - INFO - [SQL执行] 开始执行插入SQL
23:48:03 - article_server - INFO - [SQL语句]
INSERT INTO ai_articles
(enterprise_id, product_id, prompt_workflow_id, title, topic, content, status, batch_id)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s)
23:48:03 - article_server - INFO - [SQL参数] (1, 25, 25, '包皮炎会传染给女性吗?', '包皮炎会传染给女性吗?', '', 'generate', '1766159283618214')
23:48:03 - article_server - INFO - [SQL结果] 插入完成新记录ID: 48
23:48:03 - article_server - INFO - [生成文案] 文案生成成功, 文案ID: 48, 主题: 包皮炎会传染给女性吗?, 标题: 包皮炎会传染给女性吗?
23:48:03 - article_server - INFO - [生成文案] 开始生成主题文案: 得了包皮炎很痒怎么办?, 产品: 健康类自媒体
23:48:03 - article_server - INFO - [SQL执行] 开始执行插入SQL
23:48:03 - article_server - INFO - [SQL语句]
INSERT INTO ai_articles
(enterprise_id, product_id, prompt_workflow_id, title, topic, content, status, batch_id)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s)
23:48:03 - article_server - INFO - [SQL参数] (1, 25, 25, '得了包皮炎很痒怎么办?', '得了包皮炎很痒怎么办?', '', 'generate', '1766159283618214')
23:48:03 - article_server - INFO - [SQL结果] 插入完成新记录ID: 49
23:48:03 - article_server - INFO - [生成文案] 文案生成成功, 文案ID: 49, 主题: 得了包皮炎很痒怎么办?, 标题: 得了包皮炎很痒怎么办?
23:48:03 - article_server - INFO - [生成文案] 开始生成主题文案: 龟头包皮炎用什么软膏?, 产品: 健康类自媒体
23:48:03 - article_server - INFO - [SQL执行] 开始执行插入SQL
23:48:03 - article_server - INFO - [SQL语句]
INSERT INTO ai_articles
(enterprise_id, product_id, prompt_workflow_id, title, topic, content, status, batch_id)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s)
23:48:03 - article_server - INFO - [SQL参数] (1, 25, 25, '龟头包皮炎用什么软膏?', '龟头包皮炎用什么软膏?', '', 'generate', '1766159283618214')
23:48:03 - article_server - INFO - [SQL结果] 插入完成新记录ID: 50
23:48:03 - article_server - INFO - [生成文案] 文案生成成功, 文案ID: 50, 主题: 龟头包皮炎用什么软膏?, 标题: 龟头包皮炎用什么软膏?
23:48:03 - article_server - INFO - [SQL执行] 开始执行更新SQL
23:48:03 - article_server - INFO - [SQL语句] UPDATE ai_products SET articles_total = articles_total + %s WHERE id = %s
23:48:03 - article_server - INFO - [SQL参数] (3, 25)
23:48:03 - article_server - INFO - [SQL结果] 更新完成,影响 1 行
23:48:03 - article_server - INFO - [SQL执行] 开始执行更新SQL
23:48:03 - article_server - INFO - [SQL语句] UPDATE ai_enterprises SET articles_total = articles_total + %s WHERE id = %s
23:48:03 - article_server - INFO - [SQL参数] (3, 1)
23:48:03 - article_server - INFO - [SQL结果] 更新完成,影响 1 行
23:48:03 - article_server - INFO - [SQL执行] 开始执行更新SQL
23:48:03 - article_server - INFO - [SQL语句] UPDATE ai_prompt_workflow SET usage_count = usage_count + %s WHERE id = %s
23:48:03 - article_server - INFO - [SQL参数] (3, 25)
23:48:03 - article_server - INFO - [SQL结果] 更新完成,影响 1 行
23:48:03 - article_server - INFO - 生成文案成功: 3篇
23:48:03 - article_server - INFO - [API响应] POST /api/articles/generate - IP: 104.244.91.212 - 状态码: 200
23:48:04 - article_server - INFO - [API访问] GET /api/articles/list_dashboard - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
23:48:04 - article_server - INFO - [Token验证成功] 用户ID: 4
23:48:04 - article_server - INFO - [文章仪表盘] 开始处理请求, IP: 104.244.91.212
23:48:04 - article_server - INFO - [API访问] GET /api/articles/list - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
23:48:04 - article_server - INFO - [Token验证成功] 用户ID: 4
23:48:04 - article_server - INFO - [获取文章列表] 开始处理请求, IP: 104.244.91.212
23:48:04 - article_server - INFO - [获取文章列表] 用户信息 - 用户ID: 4, 企业ID: 1, IP: 104.244.91.212
23:48:04 - article_server - INFO - [获取文章列表] 查询参数: page=1, pageSize=20, keyword=, product_id=, status=, 企业ID: 1, IP: 104.244.91.212
23:48:04 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:04 - article_server - INFO - [SQL语句]
SELECT COUNT(id) as total
FROM ai_articles
WHERE enterprise_id = %s
23:48:04 - article_server - INFO - [SQL参数] (1,)
23:48:04 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:04 - article_server - INFO - [SQL语句]
SELECT COUNT(*) as total
FROM ai_articles a
WHERE a.enterprise_id = %s
23:48:04 - article_server - INFO - [SQL参数] [1]
23:48:04 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:48:04 - article_server - INFO - [SQL数据] 查询结果: [{'total': 31}]
23:48:04 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:48:04 - article_server - INFO - [SQL数据] 查询结果: [{'total': 31}]
23:48:04 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:04 - article_server - INFO - [SQL语句]
SELECT COUNT(id) as total
FROM ai_articles
WHERE enterprise_id = %s AND status = 'published_review'
23:48:04 - article_server - INFO - [SQL参数] (1,)
23:48:04 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:04 - article_server - INFO - [SQL语句]
SELECT a.id, a.batch_id, a.enterprise_id, a.product_id, a.topic_type_id,
a.prompt_workflow_id, a.topic, a.title, a.content, a.department,
a.departmentids, a.author_id, a.author_name, a.department_id, a.department_name,
a.created_user_id, a.review_user_id, a.publish_user_id, a.status, a.channel,
a.review_comment, a.publish_time, a.publish_link, a.baijiahao_id, a.baijiahao_status,
a.word_count, a.image_count, a.coze_tag, a.created_at, a.updated_at,
p.name as product_name,
pw.prompt_workflow_name as prompt_name
FROM ai_articles a
LEFT JOIN ai_products p ON a.product_id = p.id
LEFT JOIN ai_prompt_workflow pw ON a.prompt_workflow_id = pw.id
WHERE a.enterprise_id = %s
ORDER BY a.created_at DESC
LIMIT %s OFFSET %s
23:48:04 - article_server - INFO - [SQL参数] [1, 20, 0]
23:48:04 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:48:04 - article_server - INFO - [SQL数据] 查询结果: [{'total': 0}]
23:48:04 - article_server - INFO - [SQL结果] 查询完成,返回 20 条记录
23:48:04 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:04 - article_server - INFO - [SQL语句]
SELECT id, article_id, image_id, image_url, image_thumb_url, image_tag_id,
sort_order, keywords_id, keywords_name, department_id,
department_name, image_source, created_at
FROM ai_article_images
WHERE article_id IN (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)
ORDER BY article_id, sort_order ASC, created_at ASC
23:48:04 - article_server - INFO - [SQL参数] [48, 49, 50, 45, 46, 47, 42, 43, 44, 37, 38, 39, 40, 41, 32, 33, 34, 35, 36, 31]
23:48:04 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:04 - article_server - INFO - [SQL语句]
SELECT COUNT(id) as total
FROM ai_articles
WHERE enterprise_id = %s AND status = 'published'
23:48:04 - article_server - INFO - [SQL参数] (1,)
23:48:04 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
23:48:04 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:48:04 - article_server - INFO - [SQL数据] 查询结果: [{'total': 0}]
23:48:04 - article_server - INFO - [文章仪表盘] 查询成功, 企业ID: 1, 总数: 31, 可发: 0, 已发: 0, IP: 104.244.91.212
23:48:04 - article_server - INFO - [API响应] GET /api/articles/list_dashboard - IP: 104.244.91.212 - 状态码: 200
23:48:04 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:04 - article_server - INFO - [SQL语句]
SELECT id, article_id, coze_tag, created_at
FROM ai_article_tags
WHERE article_id IN (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)
23:48:04 - article_server - INFO - [SQL参数] [48, 49, 50, 45, 46, 47, 42, 43, 44, 37, 38, 39, 40, 41, 32, 33, 34, 35, 36, 31]
23:48:04 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
23:48:04 - article_server - INFO - [SQL数据] 查询结果: [{'id': 1, 'article_id': 46, 'coze_tag': '#提肛运动效果# #前列腺增生# #提肛练习方法# #辅助前列腺治疗# #前列腺健康#', 'created_at': datetime.datetime(2025, 12, 18, 12, 40, 2)}, {'id': 2, 'article_id': 47, 'coze_tag': '#前列腺增生# #保守治疗# #手术治疗# #病情判断# #排尿问题#', 'created_at': datetime.datetime(2025, 12, 18, 12, 40, 3)}, {'id': 3, 'article_id': 45, 'coze_tag': '#前列腺增生# #疾病病因# #年龄因素# #激素失衡# #生活习惯#', 'created_at': datetime.datetime(2025, 12, 18, 12, 40, 4)}]
23:48:04 - article_server - INFO - [获取文章列表] 查询成功, 总数: 31, 当前页: 1, 每页: 20, 返回数量: 20, 企业ID: 1, IP: 104.244.91.212
23:48:04 - article_server - INFO - [API响应] GET /api/articles/list - IP: 104.244.91.212 - 状态码: 200
23:48:10 - article_server - INFO - [API访问] GET /api/products/list - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
23:48:10 - article_server - INFO - [Token验证成功] 用户ID: 4
23:48:10 - article_server - INFO - [获取产品列表] 开始处理请求, IP: 104.244.91.212
23:48:10 - article_server - INFO - [获取产品列表] 用户信息 - 用户ID: 4, 企业ID: 1, IP: 104.244.91.212
23:48:10 - article_server - INFO - [获取产品列表] 查询参数: page=1, pageSize=100, keyword=, type=, status=, 企业ID: 1, IP: 104.244.91.212
23:48:10 - article_server - INFO - [API访问] GET /api/users/info - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
23:48:10 - article_server - INFO - [Token验证成功] 用户ID: 4
23:48:10 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 104.244.91.212
23:48:10 - article_server - INFO - [获取用户信息] 用户ID: 4, IP: 104.244.91.212
23:48:10 - article_server - INFO - [API访问] GET /api/prompts/list - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
23:48:10 - article_server - INFO - [Token验证成功] 用户ID: 4
23:48:10 - article_server - INFO - [API访问] GET /api/articles/list_dashboard - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
23:48:10 - article_server - INFO - [Token验证成功] 用户ID: 4
23:48:10 - article_server - INFO - [文章仪表盘] 开始处理请求, IP: 104.244.91.212
23:48:10 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:10 - article_server - INFO - [SQL语句]
SELECT id, enterprise_id, enterprise_name, username, real_name, email, phone,
wechat_openid, wechat_unionid, xhs_cookie, xhs_phone, xhs_account,
is_bound_xhs, bound_at, department, role, status, created_at, updated_at
FROM ai_users
WHERE id = %s AND status != 'deleted'
23:48:10 - article_server - INFO - [SQL参数] (4,)
23:48:10 - article_server - INFO - [API访问] GET /api/articles/list - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
23:48:10 - article_server - INFO - [Token验证成功] 用户ID: 4
23:48:10 - article_server - INFO - [获取文章列表] 开始处理请求, IP: 104.244.91.212
23:48:10 - article_server - INFO - [获取文章列表] 用户信息 - 用户ID: 4, 企业ID: 1, IP: 104.244.91.212
23:48:10 - article_server - INFO - [获取文章列表] 查询参数: page=1, pageSize=20, keyword=, product_id=, status=, 企业ID: 1, IP: 104.244.91.212
23:48:10 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:10 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_prompt_workflow WHERE enterprise_id = %s
23:48:10 - article_server - INFO - [SQL参数] (1,)
23:48:10 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:10 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_products WHERE enterprise_id = %s AND status != 'deleted'
23:48:10 - article_server - INFO - [SQL参数] [1]
23:48:10 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:10 - article_server - INFO - [SQL语句]
SELECT COUNT(id) as total
FROM ai_articles
WHERE enterprise_id = %s
23:48:10 - article_server - INFO - [SQL参数] (1,)
23:48:10 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:48:10 - article_server - INFO - [SQL数据] 查询结果: [{'id': 4, 'enterprise_id': 1, 'enterprise_name': 'rwl企业4号', 'username': 'user004', 'real_name': '饶文龙', 'email': None, 'phone': '13621242430', 'wechat_openid': None, 'wechat_unionid': None, 'xhs_cookie': None, 'xhs_phone': '', 'xhs_account': '小红书用户4', 'is_bound_xhs': 1, 'bound_at': None, 'department': '技术部', 'role': 'enterprise', 'status': 'active', 'created_at': datetime.datetime(2025, 12, 12, 16, 58, 22), 'updated_at': datetime.datetime(2025, 12, 16, 13, 47, 4)}]
23:48:10 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:10 - article_server - INFO - [SQL语句]
SELECT COUNT(*) as total
FROM ai_articles a
WHERE a.enterprise_id = %s
23:48:10 - article_server - INFO - [SQL参数] [1]
23:48:10 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:48:10 - article_server - INFO - [SQL数据] 查询结果: [{'total': 3}]
23:48:10 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:48:10 - article_server - INFO - [SQL数据] 查询结果: [{'total': 5}]
23:48:10 - article_server - INFO - [获取用户信息] 查询成功, 用户: user004, 角色: enterprise, 企业: rwl企业4号, IP: 104.244.91.212
23:48:10 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:48:10 - article_server - INFO - [SQL数据] 查询结果: [{'total': 31}]
23:48:10 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:48:10 - article_server - INFO - [SQL数据] 查询结果: [{'total': 31}]
23:48:10 - article_server - INFO - [SQL执行] 开始执行插入SQL
23:48:10 - article_server - INFO - [SQL语句]
INSERT INTO ai_logs
(user_id, action, target_type, target_id, description,
ip_address, user_agent, request_data, response_data,
status, error_message, created_at)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, NOW())
23:48:10 - article_server - INFO - [SQL参数] (4, 'get_user_info', 'user', 4, '查询用户信息: user004', '104.244.91.212', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', None, None, 'success', None)
23:48:10 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:10 - article_server - INFO - [SQL语句]
SELECT id, prompt_workflow_name, workflow_id, content, usage_count, created_at, updated_at
FROM ai_prompt_workflow
WHERE enterprise_id = %s
ORDER BY created_at DESC
LIMIT %s OFFSET %s
23:48:10 - article_server - INFO - [SQL参数] (1, 100, 0)
23:48:10 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:10 - article_server - INFO - [SQL语句]
SELECT p.id, p.name, p.type_name, p.knowledge, p.status,
p.articles_total, p.published_total,
p.image_url, p.image_thumbnail_url,
p.created_at, p.updated_at
FROM ai_products p
WHERE enterprise_id = %s AND status != 'deleted'
ORDER BY p.created_at DESC
LIMIT %s OFFSET %s
23:48:10 - article_server - INFO - [SQL参数] [1, 100, 0]
23:48:10 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:10 - article_server - INFO - [SQL语句]
SELECT a.id, a.batch_id, a.enterprise_id, a.product_id, a.topic_type_id,
a.prompt_workflow_id, a.topic, a.title, a.content, a.department,
a.departmentids, a.author_id, a.author_name, a.department_id, a.department_name,
a.created_user_id, a.review_user_id, a.publish_user_id, a.status, a.channel,
a.review_comment, a.publish_time, a.publish_link, a.baijiahao_id, a.baijiahao_status,
a.word_count, a.image_count, a.coze_tag, a.created_at, a.updated_at,
p.name as product_name,
pw.prompt_workflow_name as prompt_name
FROM ai_articles a
LEFT JOIN ai_products p ON a.product_id = p.id
LEFT JOIN ai_prompt_workflow pw ON a.prompt_workflow_id = pw.id
WHERE a.enterprise_id = %s
ORDER BY a.created_at DESC
LIMIT %s OFFSET %s
23:48:10 - article_server - INFO - [SQL参数] [1, 20, 0]
23:48:10 - article_server - INFO - [SQL结果] 插入完成新记录ID: 186
23:48:10 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
23:48:10 - article_server - INFO - [SQL数据] 查询结果: [{'id': 25, 'prompt_workflow_name': 'Inject基础提示词', 'workflow_id': '7576997068138659846', 'content': '你是一个健康类自媒体的编辑每天需要撰写健康类内容。我将要给你一个topic这个topic是一个问句。请你先产生一个段落的回复然后再段展开回复。每个段落都需要用一个emoji开头。最后请生成tag。段落与段落之间空一行保证可读性。\n详细要求如下\n一、核心要求\n1.\t目标受众 普通大众,非专业人士。务必:\n¡\t避免使用专业术语和书面化表达\n¡\t内容安全限制\n\uf06e\t❌ 禁止提及任何人体私密部位或敏感功能\n\uf06e\t❌ 禁用可能引发恐慌的词汇(如"危险""致命"\n2.\t内容核心 围绕“主题”,聚焦病症、问题、危害或困扰, 解释原因、原理,介绍症状、类型,提供积极、实用的解决方案、改善建议或注意事项等有价值的内容均可。\n3.\t唯一性与实用性 生成的内容需确保信息准确(基于常识)且每次生成的内容不应与历史输出重复(针对同一主题多次生成时)。\n二、内容结构及具体要求\n\uf06c\t【首段提问】 (title)\n¡\t对应内容为{{title}}\n\n\uf06c\t【次段简答】 (short-answer)\n¡\t字数 60-120字。 \n **内容要求**\n 1. 第一句话必须直接回答{{title}}的提问可以拓展1-2句话\n 2. 直接明晰,不要太笼统,禁止罗里吧嗦\n 3. 段前不要emoji表情符号\n \n **✅ 合格示例**\n 发现HPV16或18阳性这通常意味着宫颈癌筛查结果显示存在感染。接下来一般会建议做阴道镜检查再根据检查的具体情况决定治疗方案。\n\n **❌ 不合格示例**\n • 使用emoji开头\n • 没有直接回答问题\n • 过于笼统泛泛而谈 \n\n\uf06c\t【分段细答】 (contents)\n¡\t数量要求2-3段。\n¡\t字数要求 60~100字/段。\n¡\t核心要求\n\uf06e\t语言口语化、自然流畅。\n\uf06e\t段落内容必须围绕核心观点展开根据不同情况分类详细阐述问题可以是具体可行的建议吃什么、做什么、注意什么等疾病的科普主要症状、影响、诱因等或者其它逻辑合理的内容也可以。\n\uf06e\t内容有一定的逻辑包括但不限于首先、其次、最后第一第二第三不仅、而且、还有初级、中级、高级。\n\uf06e\t每段内容均衡不超过五句话确保信息全面且易于消化。\n\uf06e\t分段细答部分应当是次段简答部分的延伸但用词不能和次段简答部分有太多重复请保持多样性。\n\uf06e\t 在生成回答前,必须执行以下创造性流程:\n\t\t结构性禁令排除法行文结构不得是“定义→成因→症状→治疗”或“是什么→为什么→怎么办”及其任何变体。\n\t\t动态自我审视核心步骤\n\t\t回顾主动审视历史内容中针对相同或相似主题已使用过的所有核心阐述逻辑。\n\t\t规避明确禁止重复或小幅修改上述任何逻辑。\n\t\t创新基于当前问题的具体内涵生成一个在本质上全新的、服务于核心问题的最佳解释路径。该路径必须与所有已回顾的逻辑存在根本性差异。\n\t\t输出确认最终采用的逻辑结构应是本次对话上下文中一次独特的、未经使用的创造性表达形式。\n\n\uf06c\t【标签】 (tags)\n¡\t**单个关键词字数4-8个字。\n¡\t内容* (1)根据正文内容生成5个内容强相关tag (2)标签格式:每个关键词前后都有# (例: #养生小知识# #中医养生##习惯养成# #健康养生#\n三、变量输入\n\uf06c\t主题 {{title}}\n四、最终安全规则\n4.\t全篇禁止出现人体私密部位描述\n5.\t关键安全信息重复出现≥2次\n6.\t每句话≤20字复合句用逗号分隔\n7、不能出现 "下面就给大家仔细说说",“下面具体讲讲”,话术\n', 'usage_count': 20, 'created_at': datetime.datetime(2025, 12, 12, 20, 53, 9), 'updated_at': datetime.datetime(2025, 12, 19, 15, 48, 3)}, {'id': 14, 'prompt_workflow_name': '测试提示词', 'workflow_id': 'WF-CC8BB759', 'content': '这是一个测试提示词模板...', 'usage_count': 2, 'created_at': datetime.datetime(2025, 12, 12, 17, 41, 22), 'updated_at': datetime.datetime(2025, 12, 12, 17, 51, 54)}, {'id': 1, 'prompt_workflow_name': '种草分享型', 'workflow_id': 'WF-001', 'content': '你是一个小红书种草达人,请根据产品信息写一篇真实、有感染力的种草笔记...', 'usage_count': 0, 'created_at': datetime.datetime(2025, 12, 12, 16, 58, 22), 'updated_at': datetime.datetime(2025, 12, 12, 16, 58, 22)}]
23:48:10 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:10 - article_server - INFO - [SQL语句]
SELECT COUNT(id) as total
FROM ai_articles
WHERE enterprise_id = %s AND status = 'published_review'
23:48:10 - article_server - INFO - [SQL参数] (1,)
23:48:10 - article_server - INFO - [SQL结果] 查询完成,返回 5 条记录
23:48:10 - article_server - INFO - [SQL结果] 查询完成,返回 20 条记录
23:48:10 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 4 | 目标: user#4 | 状态: success | IP: 104.244.91.212 | 日志ID: 186
23:48:10 - article_server - INFO - [API响应] GET /api/users/info - IP: 104.244.91.212 - 状态码: 200
23:48:10 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:48:10 - article_server - INFO - [SQL数据] 查询结果: [{'total': 0}]
23:48:10 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:10 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
23:48:10 - article_server - INFO - [SQL参数] (25,)
23:48:10 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:10 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
23:48:10 - article_server - INFO - [SQL参数] (25,)
23:48:10 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:10 - article_server - INFO - [SQL语句]
SELECT id, article_id, image_id, image_url, image_thumb_url, image_tag_id,
sort_order, keywords_id, keywords_name, department_id,
department_name, image_source, created_at
FROM ai_article_images
WHERE article_id IN (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)
ORDER BY article_id, sort_order ASC, created_at ASC
23:48:10 - article_server - INFO - [SQL参数] [48, 49, 50, 45, 46, 47, 42, 43, 44, 37, 38, 39, 40, 41, 32, 33, 34, 35, 36, 31]
23:48:10 - article_server - INFO - [SQL结果] 查询完成,返回 2 条记录
23:48:10 - article_server - INFO - [SQL数据] 查询结果: [{'id': 14, 'tag_name': '去重'}, {'id': 15, 'tag_name': '基础提示词'}]
23:48:10 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
23:48:10 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
23:48:10 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:10 - article_server - INFO - [SQL语句]
SELECT COUNT(id) as total
FROM ai_articles
WHERE enterprise_id = %s AND status = 'published'
23:48:10 - article_server - INFO - [SQL参数] (1,)
23:48:10 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:10 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
23:48:10 - article_server - INFO - [SQL参数] (14,)
23:48:10 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:48:10 - article_server - INFO - [SQL数据] 查询结果: [{'total': 0}]
23:48:10 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:10 - article_server - INFO - [SQL语句]
SELECT id, article_id, coze_tag, created_at
FROM ai_article_tags
WHERE article_id IN (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)
23:48:10 - article_server - INFO - [SQL参数] [48, 49, 50, 45, 46, 47, 42, 43, 44, 37, 38, 39, 40, 41, 32, 33, 34, 35, 36, 31]
23:48:10 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:10 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
23:48:10 - article_server - INFO - [SQL参数] (13,)
23:48:10 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
23:48:10 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
23:48:10 - article_server - INFO - [SQL数据] 查询结果: [{'id': 1, 'article_id': 46, 'coze_tag': '#提肛运动效果# #前列腺增生# #提肛练习方法# #辅助前列腺治疗# #前列腺健康#', 'created_at': datetime.datetime(2025, 12, 18, 12, 40, 2)}, {'id': 2, 'article_id': 47, 'coze_tag': '#前列腺增生# #保守治疗# #手术治疗# #病情判断# #排尿问题#', 'created_at': datetime.datetime(2025, 12, 18, 12, 40, 3)}, {'id': 3, 'article_id': 45, 'coze_tag': '#前列腺增生# #疾病病因# #年龄因素# #激素失衡# #生活习惯#', 'created_at': datetime.datetime(2025, 12, 18, 12, 40, 4)}]
23:48:10 - article_server - INFO - [文章仪表盘] 查询成功, 企业ID: 1, 总数: 31, 可发: 0, 已发: 0, IP: 104.244.91.212
23:48:10 - article_server - INFO - [API响应] GET /api/articles/list_dashboard - IP: 104.244.91.212 - 状态码: 200
23:48:10 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
23:48:10 - article_server - INFO - [获取文章列表] 查询成功, 总数: 31, 当前页: 1, 每页: 20, 返回数量: 20, 企业ID: 1, IP: 104.244.91.212
23:48:10 - article_server - INFO - [API响应] GET /api/articles/list - IP: 104.244.91.212 - 状态码: 200
23:48:10 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:10 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
23:48:10 - article_server - INFO - [SQL参数] (1,)
23:48:10 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
23:48:10 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:10 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
23:48:10 - article_server - INFO - [SQL参数] (12,)
23:48:10 - article_server - INFO - 获取提示词列表成功,总数: 3
23:48:10 - article_server - INFO - [API响应] GET /api/prompts/list - IP: 104.244.91.212 - 状态码: 200
23:48:10 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
23:48:10 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:10 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
23:48:10 - article_server - INFO - [SQL参数] (11,)
23:48:10 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
23:48:10 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:10 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
23:48:10 - article_server - INFO - [SQL参数] (1,)
23:48:10 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:48:10 - article_server - INFO - [SQL数据] 查询结果: [{'id': 1, 'tag_name': '保湿'}]
23:48:10 - article_server - INFO - [获取产品列表] 查询成功, 总数: 5, 当前页: 1, 每页: 100, 返回数量: 5, 企业ID: 1, IP: 104.244.91.212
23:48:10 - article_server - INFO - [API响应] GET /api/products/list - IP: 104.244.91.212 - 状态码: 200
23:48:29 - article_server - INFO - [API访问] GET /api/users/info - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
23:48:29 - article_server - INFO - [Token验证成功] 用户ID: 4
23:48:29 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 104.244.91.212
23:48:29 - article_server - INFO - [获取用户信息] 用户ID: 4, IP: 104.244.91.212
23:48:29 - article_server - INFO - [API访问] GET /api/articles/list_dashboard - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
23:48:29 - article_server - INFO - [Token验证成功] 用户ID: 4
23:48:29 - article_server - INFO - [文章仪表盘] 开始处理请求, IP: 104.244.91.212
23:48:29 - article_server - INFO - [API访问] GET /api/products/list - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
23:48:29 - article_server - INFO - [Token验证成功] 用户ID: 4
23:48:29 - article_server - INFO - [获取产品列表] 开始处理请求, IP: 104.244.91.212
23:48:29 - article_server - INFO - [获取产品列表] 用户信息 - 用户ID: 4, 企业ID: 1, IP: 104.244.91.212
23:48:29 - article_server - INFO - [获取产品列表] 查询参数: page=1, pageSize=100, keyword=, type=, status=, 企业ID: 1, IP: 104.244.91.212
23:48:29 - article_server - INFO - [API访问] GET /api/prompts/list - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
23:48:29 - article_server - INFO - [Token验证成功] 用户ID: 4
23:48:29 - article_server - INFO - [API访问] GET /api/articles/list - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
23:48:29 - article_server - INFO - [Token验证成功] 用户ID: 4
23:48:29 - article_server - INFO - [获取文章列表] 开始处理请求, IP: 104.244.91.212
23:48:29 - article_server - INFO - [获取文章列表] 用户信息 - 用户ID: 4, 企业ID: 1, IP: 104.244.91.212
23:48:29 - article_server - INFO - [获取文章列表] 查询参数: page=1, pageSize=20, keyword=, product_id=, status=, 企业ID: 1, IP: 104.244.91.212
23:48:29 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:29 - article_server - INFO - [SQL语句]
SELECT COUNT(id) as total
FROM ai_articles
WHERE enterprise_id = %s
23:48:29 - article_server - INFO - [SQL参数] (1,)
23:48:29 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:29 - article_server - INFO - [SQL语句]
SELECT id, enterprise_id, enterprise_name, username, real_name, email, phone,
wechat_openid, wechat_unionid, xhs_cookie, xhs_phone, xhs_account,
is_bound_xhs, bound_at, department, role, status, created_at, updated_at
FROM ai_users
WHERE id = %s AND status != 'deleted'
23:48:29 - article_server - INFO - [SQL参数] (4,)
23:48:29 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:29 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_products WHERE enterprise_id = %s AND status != 'deleted'
23:48:29 - article_server - INFO - [SQL参数] [1]
23:48:29 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:29 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_prompt_workflow WHERE enterprise_id = %s
23:48:29 - article_server - INFO - [SQL参数] (1,)
23:48:29 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:48:29 - article_server - INFO - [SQL数据] 查询结果: [{'total': 31}]
23:48:29 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:29 - article_server - INFO - [SQL语句]
SELECT COUNT(*) as total
FROM ai_articles a
WHERE a.enterprise_id = %s
23:48:29 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:48:29 - article_server - INFO - [SQL参数] [1]
23:48:29 - article_server - INFO - [SQL数据] 查询结果: [{'id': 4, 'enterprise_id': 1, 'enterprise_name': 'rwl企业4号', 'username': 'user004', 'real_name': '饶文龙', 'email': None, 'phone': '13621242430', 'wechat_openid': None, 'wechat_unionid': None, 'xhs_cookie': None, 'xhs_phone': '', 'xhs_account': '小红书用户4', 'is_bound_xhs': 1, 'bound_at': None, 'department': '技术部', 'role': 'enterprise', 'status': 'active', 'created_at': datetime.datetime(2025, 12, 12, 16, 58, 22), 'updated_at': datetime.datetime(2025, 12, 16, 13, 47, 4)}]
23:48:29 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:48:29 - article_server - INFO - [SQL数据] 查询结果: [{'total': 3}]
23:48:29 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:48:29 - article_server - INFO - [SQL数据] 查询结果: [{'total': 5}]
23:48:29 - article_server - INFO - [获取用户信息] 查询成功, 用户: user004, 角色: enterprise, 企业: rwl企业4号, IP: 104.244.91.212
23:48:29 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:48:29 - article_server - INFO - [SQL数据] 查询结果: [{'total': 31}]
23:48:29 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:29 - article_server - INFO - [SQL语句]
SELECT COUNT(id) as total
FROM ai_articles
WHERE enterprise_id = %s AND status = 'published_review'
23:48:29 - article_server - INFO - [SQL参数] (1,)
23:48:29 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:29 - article_server - INFO - [SQL语句]
SELECT id, prompt_workflow_name, workflow_id, content, usage_count, created_at, updated_at
FROM ai_prompt_workflow
WHERE enterprise_id = %s
ORDER BY created_at DESC
LIMIT %s OFFSET %s
23:48:29 - article_server - INFO - [SQL参数] (1, 100, 0)
23:48:29 - article_server - INFO - [SQL执行] 开始执行插入SQL
23:48:29 - article_server - INFO - [SQL语句]
INSERT INTO ai_logs
(user_id, action, target_type, target_id, description,
ip_address, user_agent, request_data, response_data,
status, error_message, created_at)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, NOW())
23:48:29 - article_server - INFO - [SQL参数] (4, 'get_user_info', 'user', 4, '查询用户信息: user004', '104.244.91.212', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', None, None, 'success', None)
23:48:29 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:29 - article_server - INFO - [SQL语句]
SELECT p.id, p.name, p.type_name, p.knowledge, p.status,
p.articles_total, p.published_total,
p.image_url, p.image_thumbnail_url,
p.created_at, p.updated_at
FROM ai_products p
WHERE enterprise_id = %s AND status != 'deleted'
ORDER BY p.created_at DESC
LIMIT %s OFFSET %s
23:48:29 - article_server - INFO - [SQL参数] [1, 100, 0]
23:48:29 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:48:29 - article_server - INFO - [SQL数据] 查询结果: [{'total': 0}]
23:48:29 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
23:48:29 - article_server - INFO - [SQL数据] 查询结果: [{'id': 25, 'prompt_workflow_name': 'Inject基础提示词', 'workflow_id': '7576997068138659846', 'content': '你是一个健康类自媒体的编辑每天需要撰写健康类内容。我将要给你一个topic这个topic是一个问句。请你先产生一个段落的回复然后再段展开回复。每个段落都需要用一个emoji开头。最后请生成tag。段落与段落之间空一行保证可读性。\n详细要求如下\n一、核心要求\n1.\t目标受众 普通大众,非专业人士。务必:\n¡\t避免使用专业术语和书面化表达\n¡\t内容安全限制\n\uf06e\t❌ 禁止提及任何人体私密部位或敏感功能\n\uf06e\t❌ 禁用可能引发恐慌的词汇(如"危险""致命"\n2.\t内容核心 围绕“主题”,聚焦病症、问题、危害或困扰, 解释原因、原理,介绍症状、类型,提供积极、实用的解决方案、改善建议或注意事项等有价值的内容均可。\n3.\t唯一性与实用性 生成的内容需确保信息准确(基于常识)且每次生成的内容不应与历史输出重复(针对同一主题多次生成时)。\n二、内容结构及具体要求\n\uf06c\t【首段提问】 (title)\n¡\t对应内容为{{title}}\n\n\uf06c\t【次段简答】 (short-answer)\n¡\t字数 60-120字。 \n **内容要求**\n 1. 第一句话必须直接回答{{title}}的提问可以拓展1-2句话\n 2. 直接明晰,不要太笼统,禁止罗里吧嗦\n 3. 段前不要emoji表情符号\n \n **✅ 合格示例**\n 发现HPV16或18阳性这通常意味着宫颈癌筛查结果显示存在感染。接下来一般会建议做阴道镜检查再根据检查的具体情况决定治疗方案。\n\n **❌ 不合格示例**\n • 使用emoji开头\n • 没有直接回答问题\n • 过于笼统泛泛而谈 \n\n\uf06c\t【分段细答】 (contents)\n¡\t数量要求2-3段。\n¡\t字数要求 60~100字/段。\n¡\t核心要求\n\uf06e\t语言口语化、自然流畅。\n\uf06e\t段落内容必须围绕核心观点展开根据不同情况分类详细阐述问题可以是具体可行的建议吃什么、做什么、注意什么等疾病的科普主要症状、影响、诱因等或者其它逻辑合理的内容也可以。\n\uf06e\t内容有一定的逻辑包括但不限于首先、其次、最后第一第二第三不仅、而且、还有初级、中级、高级。\n\uf06e\t每段内容均衡不超过五句话确保信息全面且易于消化。\n\uf06e\t分段细答部分应当是次段简答部分的延伸但用词不能和次段简答部分有太多重复请保持多样性。\n\uf06e\t 在生成回答前,必须执行以下创造性流程:\n\t\t结构性禁令排除法行文结构不得是“定义→成因→症状→治疗”或“是什么→为什么→怎么办”及其任何变体。\n\t\t动态自我审视核心步骤\n\t\t回顾主动审视历史内容中针对相同或相似主题已使用过的所有核心阐述逻辑。\n\t\t规避明确禁止重复或小幅修改上述任何逻辑。\n\t\t创新基于当前问题的具体内涵生成一个在本质上全新的、服务于核心问题的最佳解释路径。该路径必须与所有已回顾的逻辑存在根本性差异。\n\t\t输出确认最终采用的逻辑结构应是本次对话上下文中一次独特的、未经使用的创造性表达形式。\n\n\uf06c\t【标签】 (tags)\n¡\t**单个关键词字数4-8个字。\n¡\t内容* (1)根据正文内容生成5个内容强相关tag (2)标签格式:每个关键词前后都有# (例: #养生小知识# #中医养生##习惯养成# #健康养生#\n三、变量输入\n\uf06c\t主题 {{title}}\n四、最终安全规则\n4.\t全篇禁止出现人体私密部位描述\n5.\t关键安全信息重复出现≥2次\n6.\t每句话≤20字复合句用逗号分隔\n7、不能出现 "下面就给大家仔细说说",“下面具体讲讲”,话术\n', 'usage_count': 20, 'created_at': datetime.datetime(2025, 12, 12, 20, 53, 9), 'updated_at': datetime.datetime(2025, 12, 19, 15, 48, 3)}, {'id': 14, 'prompt_workflow_name': '测试提示词', 'workflow_id': 'WF-CC8BB759', 'content': '这是一个测试提示词模板...', 'usage_count': 2, 'created_at': datetime.datetime(2025, 12, 12, 17, 41, 22), 'updated_at': datetime.datetime(2025, 12, 12, 17, 51, 54)}, {'id': 1, 'prompt_workflow_name': '种草分享型', 'workflow_id': 'WF-001', 'content': '你是一个小红书种草达人,请根据产品信息写一篇真实、有感染力的种草笔记...', 'usage_count': 0, 'created_at': datetime.datetime(2025, 12, 12, 16, 58, 22), 'updated_at': datetime.datetime(2025, 12, 12, 16, 58, 22)}]
23:48:29 - article_server - INFO - [SQL结果] 查询完成,返回 5 条记录
23:48:29 - article_server - INFO - [SQL结果] 插入完成新记录ID: 215
23:48:29 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:29 - article_server - INFO - [SQL语句]
SELECT a.id, a.batch_id, a.enterprise_id, a.product_id, a.topic_type_id,
a.prompt_workflow_id, a.topic, a.title, a.content, a.department,
a.departmentids, a.author_id, a.author_name, a.department_id, a.department_name,
a.created_user_id, a.review_user_id, a.publish_user_id, a.status, a.channel,
a.review_comment, a.publish_time, a.publish_link, a.baijiahao_id, a.baijiahao_status,
a.word_count, a.image_count, a.coze_tag, a.created_at, a.updated_at,
p.name as product_name,
pw.prompt_workflow_name as prompt_name
FROM ai_articles a
LEFT JOIN ai_products p ON a.product_id = p.id
LEFT JOIN ai_prompt_workflow pw ON a.prompt_workflow_id = pw.id
WHERE a.enterprise_id = %s
ORDER BY a.created_at DESC
LIMIT %s OFFSET %s
23:48:29 - article_server - INFO - [SQL参数] [1, 20, 0]
23:48:29 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 4 | 目标: user#4 | 状态: success | IP: 104.244.91.212 | 日志ID: 215
23:48:29 - article_server - INFO - [API响应] GET /api/users/info - IP: 104.244.91.212 - 状态码: 200
23:48:29 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:29 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
23:48:29 - article_server - INFO - [SQL参数] (25,)
23:48:29 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:29 - article_server - INFO - [SQL语句]
SELECT COUNT(id) as total
FROM ai_articles
WHERE enterprise_id = %s AND status = 'published'
23:48:29 - article_server - INFO - [SQL参数] (1,)
23:48:29 - article_server - INFO - [SQL结果] 查询完成,返回 20 条记录
23:48:29 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:29 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
23:48:29 - article_server - INFO - [SQL参数] (25,)
23:48:29 - article_server - INFO - [SQL结果] 查询完成,返回 2 条记录
23:48:29 - article_server - INFO - [SQL数据] 查询结果: [{'id': 14, 'tag_name': '去重'}, {'id': 15, 'tag_name': '基础提示词'}]
23:48:29 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:48:29 - article_server - INFO - [SQL数据] 查询结果: [{'total': 0}]
23:48:29 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
23:48:29 - article_server - INFO - [文章仪表盘] 查询成功, 企业ID: 1, 总数: 31, 可发: 0, 已发: 0, IP: 104.244.91.212
23:48:29 - article_server - INFO - [API响应] GET /api/articles/list_dashboard - IP: 104.244.91.212 - 状态码: 200
23:48:29 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:29 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
23:48:29 - article_server - INFO - [SQL参数] (14,)
23:48:29 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:29 - article_server - INFO - [SQL语句]
SELECT id, article_id, image_id, image_url, image_thumb_url, image_tag_id,
sort_order, keywords_id, keywords_name, department_id,
department_name, image_source, created_at
FROM ai_article_images
WHERE article_id IN (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)
ORDER BY article_id, sort_order ASC, created_at ASC
23:48:29 - article_server - INFO - [SQL参数] [48, 49, 50, 45, 46, 47, 42, 43, 44, 37, 38, 39, 40, 41, 32, 33, 34, 35, 36, 31]
23:48:29 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
23:48:29 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:29 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
23:48:29 - article_server - INFO - [SQL参数] (13,)
23:48:29 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
23:48:29 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
23:48:29 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:29 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
23:48:29 - article_server - INFO - [SQL参数] (1,)
23:48:29 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:29 - article_server - INFO - [SQL语句]
SELECT id, article_id, coze_tag, created_at
FROM ai_article_tags
WHERE article_id IN (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)
23:48:29 - article_server - INFO - [SQL参数] [48, 49, 50, 45, 46, 47, 42, 43, 44, 37, 38, 39, 40, 41, 32, 33, 34, 35, 36, 31]
23:48:29 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
23:48:29 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:29 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
23:48:29 - article_server - INFO - [SQL参数] (12,)
23:48:29 - article_server - INFO - 获取提示词列表成功,总数: 3
23:48:29 - article_server - INFO - [API响应] GET /api/prompts/list - IP: 104.244.91.212 - 状态码: 200
23:48:29 - article_server - INFO - [SQL结果] 查询完成,返回 6 条记录
23:48:29 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
23:48:29 - article_server - INFO - [获取文章列表] 查询成功, 总数: 31, 当前页: 1, 每页: 20, 返回数量: 20, 企业ID: 1, IP: 104.244.91.212
23:48:29 - article_server - INFO - [API响应] GET /api/articles/list - IP: 104.244.91.212 - 状态码: 200
23:48:29 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:29 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
23:48:29 - article_server - INFO - [SQL参数] (11,)
23:48:29 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
23:48:29 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:48:29 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
23:48:29 - article_server - INFO - [SQL参数] (1,)
23:48:29 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:48:29 - article_server - INFO - [SQL数据] 查询结果: [{'id': 1, 'tag_name': '保湿'}]
23:48:29 - article_server - INFO - [获取产品列表] 查询成功, 总数: 5, 当前页: 1, 每页: 100, 返回数量: 5, 企业ID: 1, IP: 104.244.91.212
23:48:29 - article_server - INFO - [API响应] GET /api/products/list - IP: 104.244.91.212 - 状态码: 200
23:51:30 - article_server - INFO - [API访问] POST /api/articles/batch-published-account-cycle - IP: 127.0.0.1 - User-Agent: python-requests/2.32.3
23:51:30 - article_server - INFO - [Token验证成功] 用户ID: 4
23:51:30 - article_server - INFO - [批量发布文章-循环分配] 入参数据: {"article_ids": [47, 46, 45, 50, 49, 48], "author_ids": [1]}
23:51:30 - article_server - INFO - [批量发布文章-循环分配] 排序后文章ID: [45, 46, 47, 48, 49, 50]
23:51:30 - article_server - INFO - [批量发布文章-循环分配] 排序后作者ID: [1]
23:51:30 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:51:30 - article_server - INFO - [SQL语句]
SELECT id, app_id, app_token, author_name, department_id, department_name
FROM ai_authors
WHERE id IN (%s) AND status = 'active'
ORDER BY id ASC
23:51:30 - article_server - INFO - [SQL参数] [1]
23:51:30 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:51:30 - article_server - INFO - [SQL数据] 查询结果: [{'id': 1, 'app_id': '', 'app_token': '', 'author_name': '小红书用户', 'department_id': 1, 'department_name': '雇员'}]
23:51:30 - article_server - INFO - [批量发布文章-循环分配] 查询到作者信息: [{"id": 1, "app_id": "", "app_token": "", "author_name": "小红书用户", "department_id": 1, "department_name": "雇员"}]
23:51:30 - article_server - INFO - [批量发布文章authors_dict] 查询到作者信息: {"1": {"id": 1, "app_id": "", "app_token": "", "author_name": "小红书用户", "department_id": 1, "department_name": "雇员"}}
23:51:30 - article_server - INFO - [批量发布文章-循环分配] 执行SQL查询文章:
SELECT id, title, status
FROM ai_articles
WHERE id IN (%s,%s,%s,%s,%s,%s) AND status = 'pending_review'
ORDER BY id ASC
- 参数: [45, 46, 47, 48, 49, 50]
23:51:30 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:51:30 - article_server - INFO - [SQL语句]
SELECT id, title, status
FROM ai_articles
WHERE id IN (%s,%s,%s,%s,%s,%s) AND status = 'pending_review'
ORDER BY id ASC
23:51:30 - article_server - INFO - [SQL参数] [45, 46, 47, 48, 49, 50]
23:51:30 - article_server - INFO - [SQL结果] 查询完成,返回 6 条记录
23:51:30 - article_server - INFO - [批量发布文章-循环分配] 查询结果: 请求6篇找到6篇有效文章
23:51:30 - article_server - INFO - [批量发布文章-循环分配] 开始循环分配处理 6 篇文章
23:51:30 - article_server - INFO - [批量发布文章-循环分配] 文章 45 分配给作者 1 (小红书用户)
23:51:30 - article_server - INFO - [批量发布文章-循环分配] 文章 46 分配给作者 1 (小红书用户)
23:51:30 - article_server - INFO - [批量发布文章-循环分配] 文章 47 分配给作者 1 (小红书用户)
23:51:30 - article_server - INFO - [批量发布文章-循环分配] 文章 48 分配给作者 1 (小红书用户)
23:51:30 - article_server - INFO - [批量发布文章-循环分配] 文章 49 分配给作者 1 (小红书用户)
23:51:30 - article_server - INFO - [批量发布文章-循环分配] 文章 50 分配给作者 1 (小红书用户)
23:51:30 - article_server - INFO - [批量发布文章-循环分配] 执行SQL更新:
UPDATE ai_articles
SET status = 'assign_authors',
author_id = %s,
author_name = %s,
department_name = %s,
department_id = %s,
publish_user_id = %s,
publish_time = NOW(),
updated_at = NOW()
WHERE id = %s
- 参数: (1, '小红书用户', '雇员', 1, 4, 45)
23:51:30 - article_server - INFO - [SQL执行] 开始执行更新SQL
23:51:30 - article_server - INFO - [SQL语句]
UPDATE ai_articles
SET status = 'assign_authors',
author_id = %s,
author_name = %s,
department_name = %s,
department_id = %s,
publish_user_id = %s,
publish_time = NOW(),
updated_at = NOW()
WHERE id = %s
23:51:30 - article_server - INFO - [SQL参数] (1, '小红书用户', '雇员', 1, 4, 45)
23:51:30 - article_server - INFO - [SQL结果] 更新完成,影响 1 行
23:51:30 - article_server - INFO - [批量发布文章-循环分配] 更新文章 45 完成,影响行数: 1
23:51:30 - article_server - INFO - [批量发布文章-循环分配] 文章发布成功: ID=45, 标题=前列腺增生症的病因有哪些, 作者=小红书用户, 百家号ID: bjh_45_1766159490
23:51:30 - article_server - INFO - [批量发布文章-循环分配] 执行SQL更新:
UPDATE ai_articles
SET status = 'assign_authors',
author_id = %s,
author_name = %s,
department_name = %s,
department_id = %s,
publish_user_id = %s,
publish_time = NOW(),
updated_at = NOW()
WHERE id = %s
- 参数: (1, '小红书用户', '雇员', 1, 4, 46)
23:51:30 - article_server - INFO - [SQL执行] 开始执行更新SQL
23:51:30 - article_server - INFO - [SQL语句]
UPDATE ai_articles
SET status = 'assign_authors',
author_id = %s,
author_name = %s,
department_name = %s,
department_id = %s,
publish_user_id = %s,
publish_time = NOW(),
updated_at = NOW()
WHERE id = %s
23:51:30 - article_server - INFO - [SQL参数] (1, '小红书用户', '雇员', 1, 4, 46)
23:51:30 - article_server - INFO - [SQL结果] 更新完成,影响 1 行
23:51:30 - article_server - INFO - [批量发布文章-循环分配] 更新文章 46 完成,影响行数: 1
23:51:30 - article_server - INFO - [批量发布文章-循环分配] 文章发布成功: ID=46, 标题=提肛对前列腺增生有效果吗, 作者=小红书用户, 百家号ID: bjh_46_1766159490
23:51:30 - article_server - INFO - [批量发布文章-循环分配] 执行SQL更新:
UPDATE ai_articles
SET status = 'assign_authors',
author_id = %s,
author_name = %s,
department_name = %s,
department_id = %s,
publish_user_id = %s,
publish_time = NOW(),
updated_at = NOW()
WHERE id = %s
- 参数: (1, '小红书用户', '雇员', 1, 4, 47)
23:51:30 - article_server - INFO - [SQL执行] 开始执行更新SQL
23:51:30 - article_server - INFO - [SQL语句]
UPDATE ai_articles
SET status = 'assign_authors',
author_id = %s,
author_name = %s,
department_name = %s,
department_id = %s,
publish_user_id = %s,
publish_time = NOW(),
updated_at = NOW()
WHERE id = %s
23:51:30 - article_server - INFO - [SQL参数] (1, '小红书用户', '雇员', 1, 4, 47)
23:51:30 - article_server - INFO - [SQL结果] 更新完成,影响 1 行
23:51:30 - article_server - INFO - [批量发布文章-循环分配] 更新文章 47 完成,影响行数: 1
23:51:30 - article_server - INFO - [批量发布文章-循环分配] 文章发布成功: ID=47, 标题=前列腺增生必须做手术吗, 作者=小红书用户, 百家号ID: bjh_47_1766159490
23:51:30 - article_server - INFO - [批量发布文章-循环分配] 执行SQL更新:
UPDATE ai_articles
SET status = 'assign_authors',
author_id = %s,
author_name = %s,
department_name = %s,
department_id = %s,
publish_user_id = %s,
publish_time = NOW(),
updated_at = NOW()
WHERE id = %s
- 参数: (1, '小红书用户', '雇员', 1, 4, 48)
23:51:30 - article_server - INFO - [SQL执行] 开始执行更新SQL
23:51:30 - article_server - INFO - [SQL语句]
UPDATE ai_articles
SET status = 'assign_authors',
author_id = %s,
author_name = %s,
department_name = %s,
department_id = %s,
publish_user_id = %s,
publish_time = NOW(),
updated_at = NOW()
WHERE id = %s
23:51:30 - article_server - INFO - [SQL参数] (1, '小红书用户', '雇员', 1, 4, 48)
23:51:30 - article_server - INFO - [SQL结果] 更新完成,影响 1 行
23:51:30 - article_server - INFO - [批量发布文章-循环分配] 更新文章 48 完成,影响行数: 1
23:51:30 - article_server - INFO - [批量发布文章-循环分配] 文章发布成功: ID=48, 标题=包皮炎会传染给女性吗?, 作者=小红书用户, 百家号ID: bjh_48_1766159490
23:51:30 - article_server - INFO - [批量发布文章-循环分配] 执行SQL更新:
UPDATE ai_articles
SET status = 'assign_authors',
author_id = %s,
author_name = %s,
department_name = %s,
department_id = %s,
publish_user_id = %s,
publish_time = NOW(),
updated_at = NOW()
WHERE id = %s
- 参数: (1, '小红书用户', '雇员', 1, 4, 49)
23:51:30 - article_server - INFO - [SQL执行] 开始执行更新SQL
23:51:30 - article_server - INFO - [SQL语句]
UPDATE ai_articles
SET status = 'assign_authors',
author_id = %s,
author_name = %s,
department_name = %s,
department_id = %s,
publish_user_id = %s,
publish_time = NOW(),
updated_at = NOW()
WHERE id = %s
23:51:30 - article_server - INFO - [SQL参数] (1, '小红书用户', '雇员', 1, 4, 49)
23:51:30 - article_server - INFO - [SQL结果] 更新完成,影响 1 行
23:51:30 - article_server - INFO - [批量发布文章-循环分配] 更新文章 49 完成,影响行数: 1
23:51:30 - article_server - INFO - [批量发布文章-循环分配] 文章发布成功: ID=49, 标题=得了包皮炎很痒怎么办?, 作者=小红书用户, 百家号ID: bjh_49_1766159490
23:51:30 - article_server - INFO - [批量发布文章-循环分配] 执行SQL更新:
UPDATE ai_articles
SET status = 'assign_authors',
author_id = %s,
author_name = %s,
department_name = %s,
department_id = %s,
publish_user_id = %s,
publish_time = NOW(),
updated_at = NOW()
WHERE id = %s
- 参数: (1, '小红书用户', '雇员', 1, 4, 50)
23:51:30 - article_server - INFO - [SQL执行] 开始执行更新SQL
23:51:30 - article_server - INFO - [SQL语句]
UPDATE ai_articles
SET status = 'assign_authors',
author_id = %s,
author_name = %s,
department_name = %s,
department_id = %s,
publish_user_id = %s,
publish_time = NOW(),
updated_at = NOW()
WHERE id = %s
23:51:30 - article_server - INFO - [SQL参数] (1, '小红书用户', '雇员', 1, 4, 50)
23:51:30 - article_server - INFO - [SQL结果] 更新完成,影响 1 行
23:51:30 - article_server - INFO - [批量发布文章-循环分配] 更新文章 50 完成,影响行数: 1
23:51:30 - article_server - INFO - [批量发布文章-循环分配] 文章发布成功: ID=50, 标题=龟头包皮炎用什么软膏?, 作者=小红书用户, 百家号ID: bjh_50_1766159490
23:51:30 - article_server - INFO - [批量发布文章-循环分配] 执行SQL插入日志:
INSERT INTO ai_logs (user_id, action, target_type, target_id, description, ip_address, user_agent, status)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s)
- 参数: (4, 'batch_publish_articles_cycle', 'articles', None, '批量发布文章(循环分配),成功: 6失败: 0文章ID: 45,46,47,48,49,50作者ID: 1', '127.0.0.1', 'python-requests/2.32.3', 'success')
23:51:30 - article_server - INFO - [SQL执行] 开始执行插入SQL
23:51:30 - article_server - INFO - [SQL语句]
INSERT INTO ai_logs (user_id, action, target_type, target_id, description, ip_address, user_agent, status)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s)
23:51:30 - article_server - INFO - [SQL参数] (4, 'batch_publish_articles_cycle', 'articles', None, '批量发布文章(循环分配),成功: 6失败: 0文章ID: 45,46,47,48,49,50作者ID: 1', '127.0.0.1', 'python-requests/2.32.3', 'success')
23:51:30 - article_server - INFO - [SQL结果] 插入完成新记录ID: 287
23:51:30 - article_server - INFO - [批量发布文章-循环分配] 操作日志记录成功
23:51:30 - article_server - INFO - 批量发布文章(循环分配)完成,成功: 6失败: 0
23:51:30 - article_server - INFO - [API响应] POST /api/articles/batch-published-account-cycle - IP: 127.0.0.1 - 状态码: 200
23:54:58 - article_server - INFO - [API访问] POST /api/articles/generate - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
23:54:58 - article_server - INFO - [Token验证成功] 用户ID: 4
23:54:58 - article_server - INFO - [生成文案] 开始处理生成文案请求, IP: 104.244.91.212
23:54:58 - article_server - INFO - [生成文案] 用户信息 - 用户ID: 4, 企业ID: 1, IP: 104.244.91.212
23:54:58 - article_server - INFO - [生成文案] 收到生成请求, 产品ID: 25, 提示词ID: 25, 主题数: 3, 企业ID: 1, IP: 104.244.91.212
23:54:58 - article_server - INFO - [生成文案] 验证产品是否存在, 产品ID: 25, 企业ID: 1
23:54:58 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:54:58 - article_server - INFO - [SQL语句] SELECT id, name FROM ai_products WHERE id = %s AND enterprise_id = %s
23:54:58 - article_server - INFO - [SQL参数] (25, 1)
23:54:58 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:54:58 - article_server - INFO - [SQL数据] 查询结果: [{'id': 25, 'name': '健康类自媒体'}]
23:54:58 - article_server - INFO - [生成文案] 产品验证成功, 产品名称: 健康类自媒体, ID: 25
23:54:58 - article_server - INFO - [生成文案] 验证提示词是否存在, 提示词ID: 25, 企业ID: 1
23:54:58 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:54:58 - article_server - INFO - [SQL语句] SELECT id FROM ai_prompt_workflow WHERE id = %s AND enterprise_id = %s
23:54:58 - article_server - INFO - [SQL参数] (25, 1)
23:54:58 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:54:58 - article_server - INFO - [SQL数据] 查询结果: [{'id': 25}]
23:54:58 - article_server - INFO - [生成文案] 提示词验证成功, ID: 25
23:54:58 - article_server - INFO - [生成文案] 开始生成文案, 主题数量: 3, 产品: 健康类自媒体, 企业ID: 1
23:54:58 - article_server - INFO - [批量生成文章] 生成batch_id: 1766159698392226, 待处理数据行数: 3
23:54:58 - article_server - INFO - [生成文案] 开始生成主题文案: 霉菌性包皮炎怎么治疗?, 产品: 健康类自媒体
23:54:58 - article_server - INFO - [SQL执行] 开始执行插入SQL
23:54:58 - article_server - INFO - [SQL语句]
INSERT INTO ai_articles
(enterprise_id, product_id, prompt_workflow_id, title, topic, content, status, batch_id)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s)
23:54:58 - article_server - INFO - [SQL参数] (1, 25, 25, '霉菌性包皮炎怎么治疗?', '霉菌性包皮炎怎么治疗?', '', 'generate', '1766159698392226')
23:54:58 - article_server - INFO - [SQL结果] 插入完成新记录ID: 51
23:54:58 - article_server - INFO - [生成文案] 文案生成成功, 文案ID: 51, 主题: 霉菌性包皮炎怎么治疗?, 标题: 霉菌性包皮炎怎么治疗?
23:54:58 - article_server - INFO - [生成文案] 开始生成主题文案: 小孩包皮过长 几岁割比较好, 产品: 健康类自媒体
23:54:58 - article_server - INFO - [SQL执行] 开始执行插入SQL
23:54:58 - article_server - INFO - [SQL语句]
INSERT INTO ai_articles
(enterprise_id, product_id, prompt_workflow_id, title, topic, content, status, batch_id)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s)
23:54:58 - article_server - INFO - [SQL参数] (1, 25, 25, '小孩包皮过长 几岁割比较好', '小孩包皮过长 几岁割比较好', '', 'generate', '1766159698392226')
23:54:58 - article_server - INFO - [SQL结果] 插入完成新记录ID: 52
23:54:58 - article_server - INFO - [生成文案] 文案生成成功, 文案ID: 52, 主题: 小孩包皮过长 几岁割比较好, 标题: 小孩包皮过长 几岁割比较好
23:54:58 - article_server - INFO - [生成文案] 开始生成主题文案: 如果包皮过长不割会怎么样, 产品: 健康类自媒体
23:54:58 - article_server - INFO - [SQL执行] 开始执行插入SQL
23:54:58 - article_server - INFO - [SQL语句]
INSERT INTO ai_articles
(enterprise_id, product_id, prompt_workflow_id, title, topic, content, status, batch_id)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s)
23:54:58 - article_server - INFO - [SQL参数] (1, 25, 25, '如果包皮过长不割会怎么样', '如果包皮过长不割会怎么样', '', 'generate', '1766159698392226')
23:54:58 - article_server - INFO - [SQL结果] 插入完成新记录ID: 53
23:54:58 - article_server - INFO - [生成文案] 文案生成成功, 文案ID: 53, 主题: 如果包皮过长不割会怎么样, 标题: 如果包皮过长不割会怎么样
23:54:58 - article_server - INFO - [SQL执行] 开始执行更新SQL
23:54:58 - article_server - INFO - [SQL语句] UPDATE ai_products SET articles_total = articles_total + %s WHERE id = %s
23:54:58 - article_server - INFO - [SQL参数] (3, 25)
23:54:58 - article_server - INFO - [SQL结果] 更新完成,影响 1 行
23:54:58 - article_server - INFO - [SQL执行] 开始执行更新SQL
23:54:58 - article_server - INFO - [SQL语句] UPDATE ai_enterprises SET articles_total = articles_total + %s WHERE id = %s
23:54:58 - article_server - INFO - [SQL参数] (3, 1)
23:54:58 - article_server - INFO - [SQL结果] 更新完成,影响 1 行
23:54:58 - article_server - INFO - [SQL执行] 开始执行更新SQL
23:54:58 - article_server - INFO - [SQL语句] UPDATE ai_prompt_workflow SET usage_count = usage_count + %s WHERE id = %s
23:54:58 - article_server - INFO - [SQL参数] (3, 25)
23:54:58 - article_server - INFO - [SQL结果] 更新完成,影响 1 行
23:54:58 - article_server - INFO - 生成文案成功: 3篇
23:54:58 - article_server - INFO - [API响应] POST /api/articles/generate - IP: 104.244.91.212 - 状态码: 200
23:54:59 - article_server - INFO - [API访问] GET /api/articles/list - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
23:54:59 - article_server - INFO - [Token验证成功] 用户ID: 4
23:54:59 - article_server - INFO - [获取文章列表] 开始处理请求, IP: 104.244.91.212
23:54:59 - article_server - INFO - [获取文章列表] 用户信息 - 用户ID: 4, 企业ID: 1, IP: 104.244.91.212
23:54:59 - article_server - INFO - [获取文章列表] 查询参数: page=1, pageSize=20, keyword=, product_id=, status=, 企业ID: 1, IP: 104.244.91.212
23:54:59 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:54:59 - article_server - INFO - [SQL语句]
SELECT COUNT(*) as total
FROM ai_articles a
WHERE a.enterprise_id = %s
23:54:59 - article_server - INFO - [SQL参数] [1]
23:54:59 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:54:59 - article_server - INFO - [SQL数据] 查询结果: [{'total': 34}]
23:55:00 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:55:00 - article_server - INFO - [SQL语句]
SELECT a.id, a.batch_id, a.enterprise_id, a.product_id, a.topic_type_id,
a.prompt_workflow_id, a.topic, a.title, a.content, a.department,
a.departmentids, a.author_id, a.author_name, a.department_id, a.department_name,
a.created_user_id, a.review_user_id, a.publish_user_id, a.status, a.channel,
a.review_comment, a.publish_time, a.publish_link, a.baijiahao_id, a.baijiahao_status,
a.word_count, a.image_count, a.coze_tag, a.created_at, a.updated_at,
p.name as product_name,
pw.prompt_workflow_name as prompt_name
FROM ai_articles a
LEFT JOIN ai_products p ON a.product_id = p.id
LEFT JOIN ai_prompt_workflow pw ON a.prompt_workflow_id = pw.id
WHERE a.enterprise_id = %s
ORDER BY a.created_at DESC
LIMIT %s OFFSET %s
23:55:00 - article_server - INFO - [SQL参数] [1, 20, 0]
23:55:00 - article_server - INFO - [SQL结果] 查询完成,返回 20 条记录
23:55:00 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:55:00 - article_server - INFO - [SQL语句]
SELECT id, article_id, image_id, image_url, image_thumb_url, image_tag_id,
sort_order, keywords_id, keywords_name, department_id,
department_name, image_source, created_at
FROM ai_article_images
WHERE article_id IN (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)
ORDER BY article_id, sort_order ASC, created_at ASC
23:55:00 - article_server - INFO - [SQL参数] [51, 52, 53, 48, 49, 50, 45, 46, 47, 42, 43, 44, 37, 38, 39, 40, 41, 32, 33, 34]
23:55:00 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
23:55:00 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:55:00 - article_server - INFO - [SQL语句]
SELECT id, article_id, coze_tag, created_at
FROM ai_article_tags
WHERE article_id IN (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)
23:55:00 - article_server - INFO - [SQL参数] [51, 52, 53, 48, 49, 50, 45, 46, 47, 42, 43, 44, 37, 38, 39, 40, 41, 32, 33, 34]
23:55:00 - article_server - INFO - [SQL结果] 查询完成,返回 6 条记录
23:55:00 - article_server - INFO - [获取文章列表] 查询成功, 总数: 34, 当前页: 1, 每页: 20, 返回数量: 20, 企业ID: 1, IP: 104.244.91.212
23:55:00 - article_server - INFO - [API响应] GET /api/articles/list - IP: 104.244.91.212 - 状态码: 200
23:55:00 - article_server - INFO - [API访问] GET /api/articles/list_dashboard - IP: 104.244.91.212 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
23:55:00 - article_server - INFO - [Token验证成功] 用户ID: 4
23:55:00 - article_server - INFO - [文章仪表盘] 开始处理请求, IP: 104.244.91.212
23:55:00 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:55:00 - article_server - INFO - [SQL语句]
SELECT COUNT(id) as total
FROM ai_articles
WHERE enterprise_id = %s
23:55:00 - article_server - INFO - [SQL参数] (1,)
23:55:00 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:55:00 - article_server - INFO - [SQL数据] 查询结果: [{'total': 34}]
23:55:00 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:55:00 - article_server - INFO - [SQL语句]
SELECT COUNT(id) as total
FROM ai_articles
WHERE enterprise_id = %s AND status = 'published_review'
23:55:00 - article_server - INFO - [SQL参数] (1,)
23:55:00 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:55:00 - article_server - INFO - [SQL数据] 查询结果: [{'total': 0}]
23:55:00 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:55:00 - article_server - INFO - [SQL语句]
SELECT COUNT(id) as total
FROM ai_articles
WHERE enterprise_id = %s AND status = 'published'
23:55:00 - article_server - INFO - [SQL参数] (1,)
23:55:00 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:55:00 - article_server - INFO - [SQL数据] 查询结果: [{'total': 0}]
23:55:00 - article_server - INFO - [文章仪表盘] 查询成功, 企业ID: 1, 总数: 34, 可发: 0, 已发: 0, IP: 104.244.91.212
23:55:00 - article_server - INFO - [API响应] GET /api/articles/list_dashboard - IP: 104.244.91.212 - 状态码: 200
23:55:10 - article_server - INFO - [API访问] POST /api/articles/batch-published-account-cycle - IP: 127.0.0.1 - User-Agent: python-requests/2.32.3
23:55:10 - article_server - INFO - [Token验证成功] 用户ID: 4
23:55:10 - article_server - INFO - [批量发布文章-循环分配] 入参数据: {"article_ids": [53, 51], "author_ids": [1, 2]}
23:55:10 - article_server - INFO - [批量发布文章-循环分配] 排序后文章ID: [51, 53]
23:55:10 - article_server - INFO - [批量发布文章-循环分配] 排序后作者ID: [1, 2]
23:55:10 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:55:10 - article_server - INFO - [SQL语句]
SELECT id, app_id, app_token, author_name, department_id, department_name
FROM ai_authors
WHERE id IN (%s,%s) AND status = 'active'
ORDER BY id ASC
23:55:10 - article_server - INFO - [SQL参数] [1, 2]
23:55:10 - article_server - INFO - [SQL结果] 查询完成,返回 2 条记录
23:55:10 - article_server - INFO - [SQL数据] 查询结果: [{'id': 1, 'app_id': '', 'app_token': '', 'author_name': '小红书用户', 'department_id': 1, 'department_name': '雇员'}, {'id': 2, 'app_id': '', 'app_token': '', 'author_name': '小红书用户', 'department_id': 1, 'department_name': '雇员'}]
23:55:10 - article_server - INFO - [批量发布文章-循环分配] 查询到作者信息: [{"id": 1, "app_id": "", "app_token": "", "author_name": "小红书用户", "department_id": 1, "department_name": "雇员"}, {"id": 2, "app_id": "", "app_token": "", "author_name": "小红书用户", "department_id": 1, "department_name": "雇员"}]
23:55:10 - article_server - INFO - [批量发布文章authors_dict] 查询到作者信息: {"1": {"id": 1, "app_id": "", "app_token": "", "author_name": "小红书用户", "department_id": 1, "department_name": "雇员"}, "2": {"id": 2, "app_id": "", "app_token": "", "author_name": "小红书用户", "department_id": 1, "department_name": "雇员"}}
23:55:10 - article_server - INFO - [批量发布文章-循环分配] 执行SQL查询文章:
SELECT id, title, status
FROM ai_articles
WHERE id IN (%s,%s) AND status = 'pending_review'
ORDER BY id ASC
- 参数: [51, 53]
23:55:10 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:55:10 - article_server - INFO - [SQL语句]
SELECT id, title, status
FROM ai_articles
WHERE id IN (%s,%s) AND status = 'pending_review'
ORDER BY id ASC
23:55:10 - article_server - INFO - [SQL参数] [51, 53]
23:55:10 - article_server - INFO - [SQL结果] 查询完成,返回 2 条记录
23:55:10 - article_server - INFO - [SQL数据] 查询结果: [{'id': 51, 'title': '霉菌性包皮炎怎么治疗?', 'status': 'pending_review'}, {'id': 53, 'title': '如果包皮过长不割会怎么样', 'status': 'pending_review'}]
23:55:10 - article_server - INFO - [批量发布文章-循环分配] 查询结果: 请求2篇找到2篇有效文章
23:55:10 - article_server - INFO - [批量发布文章-循环分配] 开始循环分配处理 2 篇文章
23:55:10 - article_server - INFO - [批量发布文章-循环分配] 文章 51 分配给作者 1 (小红书用户)
23:55:10 - article_server - INFO - [批量发布文章-循环分配] 文章 53 分配给作者 2 (小红书用户)
23:55:10 - article_server - INFO - [批量发布文章-循环分配] 执行SQL更新:
UPDATE ai_articles
SET status = 'assign_authors',
author_id = %s,
author_name = %s,
department_name = %s,
department_id = %s,
publish_user_id = %s,
publish_time = NOW(),
updated_at = NOW()
WHERE id = %s
- 参数: (1, '小红书用户', '雇员', 1, 4, 51)
23:55:10 - article_server - INFO - [SQL执行] 开始执行更新SQL
23:55:10 - article_server - INFO - [SQL语句]
UPDATE ai_articles
SET status = 'assign_authors',
author_id = %s,
author_name = %s,
department_name = %s,
department_id = %s,
publish_user_id = %s,
publish_time = NOW(),
updated_at = NOW()
WHERE id = %s
23:55:10 - article_server - INFO - [SQL参数] (1, '小红书用户', '雇员', 1, 4, 51)
23:55:10 - article_server - INFO - [SQL结果] 更新完成,影响 1 行
23:55:10 - article_server - INFO - [批量发布文章-循环分配] 更新文章 51 完成,影响行数: 1
23:55:10 - article_server - INFO - [批量发布文章-循环分配] 文章发布成功: ID=51, 标题=霉菌性包皮炎怎么治疗?, 作者=小红书用户, 百家号ID: bjh_51_1766159710
23:55:10 - article_server - INFO - [批量发布文章-循环分配] 执行SQL更新:
UPDATE ai_articles
SET status = 'assign_authors',
author_id = %s,
author_name = %s,
department_name = %s,
department_id = %s,
publish_user_id = %s,
publish_time = NOW(),
updated_at = NOW()
WHERE id = %s
- 参数: (2, '小红书用户', '雇员', 1, 4, 53)
23:55:10 - article_server - INFO - [SQL执行] 开始执行更新SQL
23:55:10 - article_server - INFO - [SQL语句]
UPDATE ai_articles
SET status = 'assign_authors',
author_id = %s,
author_name = %s,
department_name = %s,
department_id = %s,
publish_user_id = %s,
publish_time = NOW(),
updated_at = NOW()
WHERE id = %s
23:55:10 - article_server - INFO - [SQL参数] (2, '小红书用户', '雇员', 1, 4, 53)
23:55:10 - article_server - INFO - [SQL结果] 更新完成,影响 1 行
23:55:10 - article_server - INFO - [批量发布文章-循环分配] 更新文章 53 完成,影响行数: 1
23:55:10 - article_server - INFO - [批量发布文章-循环分配] 文章发布成功: ID=53, 标题=如果包皮过长不割会怎么样, 作者=小红书用户, 百家号ID: bjh_53_1766159710
23:55:10 - article_server - INFO - [批量发布文章-循环分配] 执行SQL插入日志:
INSERT INTO ai_logs (user_id, action, target_type, target_id, description, ip_address, user_agent, status)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s)
- 参数: (4, 'batch_publish_articles_cycle', 'articles', None, '批量发布文章(循环分配),成功: 2失败: 0文章ID: 51,53作者ID: 1,2', '127.0.0.1', 'python-requests/2.32.3', 'success')
23:55:10 - article_server - INFO - [SQL执行] 开始执行插入SQL
23:55:10 - article_server - INFO - [SQL语句]
INSERT INTO ai_logs (user_id, action, target_type, target_id, description, ip_address, user_agent, status)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s)
23:55:10 - article_server - INFO - [SQL参数] (4, 'batch_publish_articles_cycle', 'articles', None, '批量发布文章(循环分配),成功: 2失败: 0文章ID: 51,53作者ID: 1,2', '127.0.0.1', 'python-requests/2.32.3', 'success')
23:55:10 - article_server - INFO - [SQL结果] 插入完成新记录ID: 403
23:55:10 - article_server - INFO - [批量发布文章-循环分配] 操作日志记录成功
23:55:10 - article_server - INFO - 批量发布文章(循环分配)完成,成功: 2失败: 0
23:55:10 - article_server - INFO - [API响应] POST /api/articles/batch-published-account-cycle - IP: 127.0.0.1 - 状态码: 200
23:55:21 - article_server - INFO - [API访问] POST /api/articles/batch-published-account-cycle - IP: 127.0.0.1 - User-Agent: python-requests/2.32.3
23:55:21 - article_server - INFO - [Token验证成功] 用户ID: 4
23:55:21 - article_server - INFO - [批量发布文章-循环分配] 入参数据: {"article_ids": [52], "author_ids": [1, 2]}
23:55:21 - article_server - INFO - [批量发布文章-循环分配] 排序后文章ID: [52]
23:55:21 - article_server - INFO - [批量发布文章-循环分配] 排序后作者ID: [1, 2]
23:55:21 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:55:21 - article_server - INFO - [SQL语句]
SELECT id, app_id, app_token, author_name, department_id, department_name
FROM ai_authors
WHERE id IN (%s,%s) AND status = 'active'
ORDER BY id ASC
23:55:21 - article_server - INFO - [SQL参数] [1, 2]
23:55:21 - article_server - INFO - [SQL结果] 查询完成,返回 2 条记录
23:55:21 - article_server - INFO - [SQL数据] 查询结果: [{'id': 1, 'app_id': '', 'app_token': '', 'author_name': '小红书用户', 'department_id': 1, 'department_name': '雇员'}, {'id': 2, 'app_id': '', 'app_token': '', 'author_name': '小红书用户', 'department_id': 1, 'department_name': '雇员'}]
23:55:21 - article_server - INFO - [批量发布文章-循环分配] 查询到作者信息: [{"id": 1, "app_id": "", "app_token": "", "author_name": "小红书用户", "department_id": 1, "department_name": "雇员"}, {"id": 2, "app_id": "", "app_token": "", "author_name": "小红书用户", "department_id": 1, "department_name": "雇员"}]
23:55:21 - article_server - INFO - [批量发布文章authors_dict] 查询到作者信息: {"1": {"id": 1, "app_id": "", "app_token": "", "author_name": "小红书用户", "department_id": 1, "department_name": "雇员"}, "2": {"id": 2, "app_id": "", "app_token": "", "author_name": "小红书用户", "department_id": 1, "department_name": "雇员"}}
23:55:21 - article_server - INFO - [批量发布文章-循环分配] 执行SQL查询文章:
SELECT id, title, status
FROM ai_articles
WHERE id IN (%s) AND status = 'pending_review'
ORDER BY id ASC
- 参数: [52]
23:55:21 - article_server - INFO - [SQL执行] 开始执行查询SQL
23:55:21 - article_server - INFO - [SQL语句]
SELECT id, title, status
FROM ai_articles
WHERE id IN (%s) AND status = 'pending_review'
ORDER BY id ASC
23:55:21 - article_server - INFO - [SQL参数] [52]
23:55:21 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
23:55:21 - article_server - INFO - [SQL数据] 查询结果: [{'id': 52, 'title': '小孩包皮过长 几岁割比较好', 'status': 'pending_review'}]
23:55:21 - article_server - INFO - [批量发布文章-循环分配] 查询结果: 请求1篇找到1篇有效文章
23:55:21 - article_server - INFO - [批量发布文章-循环分配] 开始循环分配处理 1 篇文章
23:55:21 - article_server - INFO - [批量发布文章-循环分配] 文章 52 分配给作者 1 (小红书用户)
23:55:21 - article_server - INFO - [批量发布文章-循环分配] 执行SQL更新:
UPDATE ai_articles
SET status = 'assign_authors',
author_id = %s,
author_name = %s,
department_name = %s,
department_id = %s,
publish_user_id = %s,
publish_time = NOW(),
updated_at = NOW()
WHERE id = %s
- 参数: (1, '小红书用户', '雇员', 1, 4, 52)
23:55:21 - article_server - INFO - [SQL执行] 开始执行更新SQL
23:55:21 - article_server - INFO - [SQL语句]
UPDATE ai_articles
SET status = 'assign_authors',
author_id = %s,
author_name = %s,
department_name = %s,
department_id = %s,
publish_user_id = %s,
publish_time = NOW(),
updated_at = NOW()
WHERE id = %s
23:55:21 - article_server - INFO - [SQL参数] (1, '小红书用户', '雇员', 1, 4, 52)
23:55:21 - article_server - INFO - [SQL结果] 更新完成,影响 1 行
23:55:21 - article_server - INFO - [批量发布文章-循环分配] 更新文章 52 完成,影响行数: 1
23:55:21 - article_server - INFO - [批量发布文章-循环分配] 文章发布成功: ID=52, 标题=小孩包皮过长 几岁割比较好, 作者=小红书用户, 百家号ID: bjh_52_1766159721
23:55:21 - article_server - INFO - [批量发布文章-循环分配] 执行SQL插入日志:
INSERT INTO ai_logs (user_id, action, target_type, target_id, description, ip_address, user_agent, status)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s)
- 参数: (4, 'batch_publish_articles_cycle', 'articles', None, '批量发布文章(循环分配),成功: 1失败: 0文章ID: 52作者ID: 1,2', '127.0.0.1', 'python-requests/2.32.3', 'success')
23:55:21 - article_server - INFO - [SQL执行] 开始执行插入SQL
23:55:21 - article_server - INFO - [SQL语句]
INSERT INTO ai_logs (user_id, action, target_type, target_id, description, ip_address, user_agent, status)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s)
23:55:21 - article_server - INFO - [SQL参数] (4, 'batch_publish_articles_cycle', 'articles', None, '批量发布文章(循环分配),成功: 1失败: 0文章ID: 52作者ID: 1,2', '127.0.0.1', 'python-requests/2.32.3', 'success')
23:55:21 - article_server - INFO - [SQL结果] 插入完成新记录ID: 418
23:55:21 - article_server - INFO - [批量发布文章-循环分配] 操作日志记录成功
23:55:21 - article_server - INFO - 批量发布文章(循环分配)完成,成功: 1失败: 0
23:55:21 - article_server - INFO - [API响应] POST /api/articles/batch-published-account-cycle - IP: 127.0.0.1 - 状态码: 200
14:26:24 - article_server - INFO - [API访问] GET /api/dashboard/overview - IP: 125.121.107.252 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
14:26:24 - article_server - INFO - [Token验证成功] 用户ID: 4
14:26:24 - article_server - INFO - [API访问] GET /api/dashboard/recent-publishes - IP: 125.121.107.252 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
14:26:24 - article_server - INFO - [Token验证成功] 用户ID: 4
14:26:24 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:24 - article_server - INFO - [SQL语句]
SELECT users_total, products_total, articles_total, published_total
FROM ai_enterprises
WHERE id = %s
14:26:24 - article_server - INFO - [SQL参数] (1,)
14:26:25 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
14:26:25 - article_server - INFO - [SQL数据] 查询结果: [{'users_total': 1, 'products_total': 2, 'articles_total': 34, 'published_total': 0}]
14:26:25 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:25 - article_server - INFO - [SQL语句]
SELECT r.id, r.publish_time,
u.real_name as employee_name,
p.name as product_name,
'success' as status
FROM ai_article_published_records r
LEFT JOIN ai_users u ON r.created_user_id = u.id
LEFT JOIN ai_products p ON r.product_id = p.id
WHERE r.enterprise_id = %s
ORDER BY r.publish_time DESC
LIMIT %s
14:26:25 - article_server - INFO - [SQL参数] (1, 5)
14:26:25 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:25 - article_server - INFO - [SQL语句]
SELECT COUNT(*) as month_published
FROM ai_article_published_records
WHERE enterprise_id = %s
AND YEAR(publish_time) = YEAR(CURDATE())
AND MONTH(publish_time) = MONTH(CURDATE())
14:26:25 - article_server - INFO - [SQL参数] (1,)
14:26:25 - article_server - INFO - [SQL结果] 查询完成,返回 4 条记录
14:26:25 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
14:26:25 - article_server - INFO - [SQL数据] 查询结果: [{'month_published': 4}]
14:26:25 - article_server - INFO - 获取最近发布成功
14:26:25 - article_server - INFO - [API响应] GET /api/dashboard/recent-publishes - IP: 125.121.107.252 - 状态码: 200
14:26:25 - article_server - INFO - [API访问] GET /api/dashboard/hot-products - IP: 125.121.107.252 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
14:26:25 - article_server - INFO - [Token验证成功] 用户ID: 4
14:26:25 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:25 - article_server - INFO - [SQL语句]
SELECT COUNT(*) as last_month_published
FROM ai_article_published_records
WHERE enterprise_id = %s
AND YEAR(publish_time) = YEAR(DATE_SUB(CURDATE(), INTERVAL 1 MONTH))
AND MONTH(publish_time) = MONTH(DATE_SUB(CURDATE(), INTERVAL 1 MONTH))
14:26:25 - article_server - INFO - [SQL参数] (1,)
14:26:25 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:25 - article_server - INFO - [SQL语句]
SELECT r.product_id, p.name as product_name,
COUNT(*) as publishes,
ROUND(COUNT(*) * 100.0 / (SELECT COUNT(*) FROM ai_article_published_records WHERE enterprise_id = %s), 0) as percentage
FROM ai_article_published_records r
LEFT JOIN ai_products p ON r.product_id = p.id
WHERE r.enterprise_id = %s
GROUP BY r.product_id, p.name
ORDER BY publishes DESC
LIMIT %s
14:26:25 - article_server - INFO - [SQL参数] (1, 1, 4)
14:26:25 - article_server - INFO - [API访问] GET /api/users/info - IP: 125.121.107.252 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
14:26:25 - article_server - INFO - [Token验证成功] 用户ID: 4
14:26:25 - article_server - INFO - [获取用户信息] 开始处理请求, IP: 125.121.107.252
14:26:25 - article_server - INFO - [获取用户信息] 用户ID: 4, IP: 125.121.107.252
14:26:25 - article_server - INFO - [SQL结果] 查询完成,返回 4 条记录
14:26:25 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
14:26:25 - article_server - INFO - [SQL数据] 查询结果: [{'last_month_published': 0}]
14:26:25 - article_server - INFO - 获取热门产品成功
14:26:25 - article_server - INFO - [API响应] GET /api/dashboard/hot-products - IP: 125.121.107.252 - 状态码: 200
14:26:25 - article_server - INFO - 获取工作台概览成功
14:26:25 - article_server - INFO - [API响应] GET /api/dashboard/overview - IP: 125.121.107.252 - 状态码: 200
14:26:25 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:25 - article_server - INFO - [SQL语句]
SELECT id, enterprise_id, enterprise_name, username, real_name, email, phone,
wechat_openid, wechat_unionid, xhs_cookie, xhs_phone, xhs_account,
is_bound_xhs, bound_at, department, role, status, created_at, updated_at
FROM ai_users
WHERE id = %s AND status != 'deleted'
14:26:25 - article_server - INFO - [SQL参数] (4,)
14:26:25 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
14:26:25 - article_server - INFO - [SQL数据] 查询结果: [{'id': 4, 'enterprise_id': 1, 'enterprise_name': 'rwl企业4号', 'username': 'user004', 'real_name': '饶文龙', 'email': '', 'phone': '13621242430', 'wechat_openid': 'ovoJF1z6ejXbXcWUHnvCw5HA0OeA', 'wechat_unionid': None, 'xhs_cookie': '', 'xhs_phone': '', 'xhs_account': '小红书用户4', 'is_bound_xhs': 1, 'bound_at': None, 'department': '技术部', 'role': 'enterprise', 'status': 'active', 'created_at': datetime.datetime(2025, 12, 12, 16, 58, 22), 'updated_at': datetime.datetime(2025, 12, 20, 10, 4, 10)}]
14:26:25 - article_server - INFO - [获取用户信息] 查询成功, 用户: user004, 角色: enterprise, 企业: rwl企业4号, IP: 125.121.107.252
14:26:25 - article_server - INFO - [SQL执行] 开始执行插入SQL
14:26:25 - article_server - INFO - [SQL语句]
INSERT INTO ai_logs
(user_id, action, target_type, target_id, description,
ip_address, user_agent, request_data, response_data,
status, error_message, created_at)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, NOW())
14:26:25 - article_server - INFO - [SQL参数] (4, 'get_user_info', 'user', 4, '查询用户信息: user004', '125.121.107.252', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36', None, None, 'success', None)
14:26:25 - article_server - INFO - [SQL结果] 插入完成新记录ID: 20445
14:26:25 - article_server - INFO - [业务日志] 操作: get_user_info | 用户ID: 4 | 目标: user#4 | 状态: success | IP: 125.121.107.252 | 日志ID: 20445
14:26:25 - article_server - INFO - [API响应] GET /api/users/info - IP: 125.121.107.252 - 状态码: 200
14:26:37 - article_server - INFO - [API访问] GET /api/statistics/overview - IP: 125.121.107.252 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
14:26:37 - article_server - INFO - [Token验证成功] 用户ID: 4
14:26:37 - article_server - INFO - [API访问] GET /api/employees/list - IP: 125.121.107.252 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
14:26:37 - article_server - INFO - [Token验证成功] 用户ID: 4
14:26:37 - article_server - INFO - [API访问] GET /api/products/list - IP: 125.121.107.252 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
14:26:37 - article_server - INFO - [Token验证成功] 用户ID: 4
14:26:37 - article_server - INFO - [获取产品列表] 开始处理请求, IP: 125.121.107.252
14:26:37 - article_server - INFO - [获取产品列表] 用户信息 - 用户ID: 4, 企业ID: 1, IP: 125.121.107.252
14:26:37 - article_server - INFO - [获取产品列表] 查询参数: page=1, pageSize=100, keyword=, type=, status=, 企业ID: 1, IP: 125.121.107.252
14:26:37 - article_server - INFO - [API访问] GET /api/statistics/records - IP: 125.121.107.252 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
14:26:37 - article_server - INFO - [Token验证成功] 用户ID: 4
14:26:37 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:37 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_article_published_records WHERE enterprise_id = %s
14:26:37 - article_server - INFO - [SQL参数] (1,)
14:26:37 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:37 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_users WHERE enterprise_id = %s AND status != 'deleted'
14:26:37 - article_server - INFO - [SQL参数] [1]
14:26:37 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:37 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_products WHERE enterprise_id = %s AND status != 'deleted'
14:26:37 - article_server - INFO - [SQL参数] [1]
14:26:37 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
14:26:37 - article_server - INFO - [SQL数据] 查询结果: [{'total': 4}]
14:26:37 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
14:26:37 - article_server - INFO - [SQL数据] 查询结果: [{'total': 4}]
14:26:37 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
14:26:37 - article_server - INFO - [SQL数据] 查询结果: [{'total': 5}]
14:26:37 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:37 - article_server - INFO - [SQL语句]
SELECT COUNT(*) as today_count
FROM ai_article_published_records
WHERE enterprise_id = %s AND DATE(publish_time) = CURDATE()
14:26:37 - article_server - INFO - [SQL参数] (1,)
14:26:37 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:37 - article_server - INFO - [SQL语句]
SELECT id, enterprise_id, real_name as name, username, phone, role, department,
is_bound_xhs, xhs_account, status, created_at, updated_at
FROM ai_users
WHERE enterprise_id = %s AND status != 'deleted'
ORDER BY created_at DESC
LIMIT %s OFFSET %s
14:26:37 - article_server - INFO - [SQL参数] [1, 100, 0]
14:26:37 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:37 - article_server - INFO - [SQL语句]
SELECT p.id, p.name, p.type_name, p.knowledge, p.status,
p.articles_total, p.published_total,
p.image_url, p.image_thumbnail_url,
p.created_at, p.updated_at
FROM ai_products p
WHERE enterprise_id = %s AND status != 'deleted'
ORDER BY p.created_at DESC
LIMIT %s OFFSET %s
14:26:37 - article_server - INFO - [SQL参数] [1, 100, 0]
14:26:37 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
14:26:37 - article_server - INFO - [SQL数据] 查询结果: [{'today_count': 1}]
14:26:37 - article_server - INFO - [SQL结果] 查询完成,返回 4 条记录
14:26:37 - article_server - INFO - [SQL结果] 查询完成,返回 5 条记录
14:26:37 - article_server - INFO - 获取员工列表成功,总数: 4
14:26:37 - article_server - INFO - [API响应] GET /api/employees/list - IP: 125.121.107.252 - 状态码: 200
14:26:37 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:37 - article_server - INFO - [SQL语句]
SELECT COUNT(*) as week_count
FROM ai_article_published_records
WHERE enterprise_id = %s AND YEARWEEK(publish_time, 1) = YEARWEEK(CURDATE(), 1)
14:26:37 - article_server - INFO - [SQL参数] (1,)
14:26:37 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:37 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
14:26:37 - article_server - INFO - [SQL参数] (25,)
14:26:37 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
14:26:37 - article_server - INFO - [SQL数据] 查询结果: [{'week_count': 4}]
14:26:37 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:37 - article_server - INFO - [SQL语句]
SELECT COUNT(*) as total
FROM ai_article_published_records r
WHERE r.enterprise_id = %s
14:26:37 - article_server - INFO - [SQL参数] [1]
14:26:37 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
14:26:37 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
14:26:37 - article_server - INFO - [SQL数据] 查询结果: [{'total': 4}]
14:26:37 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:37 - article_server - INFO - [SQL语句]
SELECT COUNT(*) as month_count
FROM ai_article_published_records
WHERE enterprise_id = %s AND YEAR(publish_time) = YEAR(CURDATE())
AND MONTH(publish_time) = MONTH(CURDATE())
14:26:37 - article_server - INFO - [SQL参数] (1,)
14:26:37 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:37 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
14:26:37 - article_server - INFO - [SQL数据] 查询结果: [{'month_count': 4}]
14:26:37 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
14:26:37 - article_server - INFO - [SQL参数] (13,)
14:26:38 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
14:26:38 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:38 - article_server - INFO - [SQL语句]
SELECT r.id, r.publish_time, r.created_user_id, r.product_id, r.article_id,
r.publish_link, r.topic,
u.real_name as employee_name,
p.name as product_name,
a.title
FROM ai_article_published_records r
LEFT JOIN ai_users u ON r.created_user_id = u.id
LEFT JOIN ai_products p ON r.product_id = p.id
LEFT JOIN ai_articles a ON r.article_id = a.id
WHERE r.enterprise_id = %s
ORDER BY r.publish_time DESC
LIMIT %s OFFSET %s
14:26:38 - article_server - INFO - [SQL参数] [1, 100, 0]
14:26:38 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:38 - article_server - INFO - [SQL语句]
SELECT COUNT(DISTINCT created_user_id) as employee_count
FROM ai_article_published_records
WHERE enterprise_id = %s
14:26:38 - article_server - INFO - [SQL参数] (1,)
14:26:38 - article_server - INFO - [SQL结果] 查询完成,返回 4 条记录
14:26:38 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
14:26:38 - article_server - INFO - [SQL数据] 查询结果: [{'employee_count': 2}]
14:26:38 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:38 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
14:26:38 - article_server - INFO - [SQL参数] (12,)
14:26:38 - article_server - INFO - 获取发布记录列表成功,总数: 4
14:26:38 - article_server - INFO - [API响应] GET /api/statistics/records - IP: 125.121.107.252 - 状态码: 200
14:26:38 - article_server - INFO - 获取统计概览成功
14:26:38 - article_server - INFO - [API响应] GET /api/statistics/overview - IP: 125.121.107.252 - 状态码: 200
14:26:38 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
14:26:38 - article_server - INFO - [API访问] GET /api/statistics/by-product - IP: 125.121.107.252 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
14:26:38 - article_server - INFO - [Token验证成功] 用户ID: 4
14:26:38 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:38 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
14:26:38 - article_server - INFO - [SQL参数] (11,)
14:26:38 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:38 - article_server - INFO - [SQL语句]
SELECT r.product_id, p.name as product_name,
COUNT(*) as count,
ROUND(COUNT(*) * 100.0 / (SELECT COUNT(*) FROM ai_article_published_records WHERE r.enterprise_id = %s), 0) as percentage
FROM ai_article_published_records r
LEFT JOIN ai_products p ON r.product_id = p.id
WHERE r.enterprise_id = %s
GROUP BY r.product_id, p.name
ORDER BY count DESC
14:26:38 - article_server - INFO - [SQL参数] [1, 1]
14:26:38 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
14:26:38 - article_server - INFO - [SQL结果] 查询完成,返回 4 条记录
14:26:38 - article_server - INFO - 按产品统计成功
14:26:38 - article_server - INFO - [API响应] GET /api/statistics/by-product - IP: 125.121.107.252 - 状态码: 200
14:26:38 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:38 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
14:26:38 - article_server - INFO - [SQL参数] (1,)
14:26:38 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
14:26:38 - article_server - INFO - [SQL数据] 查询结果: [{'id': 1, 'tag_name': '保湿'}]
14:26:38 - article_server - INFO - [获取产品列表] 查询成功, 总数: 5, 当前页: 1, 每页: 100, 返回数量: 5, 企业ID: 1, IP: 125.121.107.252
14:26:38 - article_server - INFO - [API响应] GET /api/products/list - IP: 125.121.107.252 - 状态码: 200
14:26:38 - article_server - INFO - [API访问] GET /api/statistics/employee-rank - IP: 125.121.107.252 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
14:26:38 - article_server - INFO - [Token验证成功] 用户ID: 4
14:26:38 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:38 - article_server - INFO - [SQL语句]
SELECT r.created_user_id as employee_id, u.real_name as employee_name,
COUNT(*) as count,
ROW_NUMBER() OVER (ORDER BY COUNT(*) DESC) as `rank`
FROM ai_article_published_records r
LEFT JOIN ai_users u ON r.created_user_id = u.id
WHERE r.enterprise_id = %s
GROUP BY r.created_user_id, u.real_name
ORDER BY count DESC
LIMIT %s
14:26:38 - article_server - INFO - [SQL参数] [1, 5]
14:26:38 - article_server - INFO - [SQL结果] 查询完成,返回 2 条记录
14:26:38 - article_server - INFO - [SQL数据] 查询结果: [{'employee_id': 18, 'employee_name': '测试员工API', 'count': 3, 'rank': 1}, {'employee_id': 0, 'employee_name': None, 'count': 1, 'rank': 2}]
14:26:38 - article_server - INFO - 获取员工排行成功
14:26:38 - article_server - INFO - [API响应] GET /api/statistics/employee-rank - IP: 125.121.107.252 - 状态码: 200
14:26:39 - article_server - INFO - [API访问] GET /api/articles/list - IP: 125.121.107.252 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
14:26:39 - article_server - INFO - [Token验证成功] 用户ID: 4
14:26:39 - article_server - INFO - [获取文章列表] 开始处理请求, IP: 125.121.107.252
14:26:39 - article_server - INFO - [获取文章列表] 用户信息 - 用户ID: 4, 企业ID: 1, IP: 125.121.107.252
14:26:39 - article_server - INFO - [获取文章列表] 查询参数: page=1, pageSize=20, keyword=, product_id=, status=, 企业ID: 1, IP: 125.121.107.252
14:26:39 - article_server - INFO - [API访问] GET /api/products/list - IP: 125.121.107.252 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
14:26:39 - article_server - INFO - [Token验证成功] 用户ID: 4
14:26:39 - article_server - INFO - [获取产品列表] 开始处理请求, IP: 125.121.107.252
14:26:39 - article_server - INFO - [API访问] GET /api/prompts/list - IP: 125.121.107.252 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
14:26:39 - article_server - INFO - [获取产品列表] 用户信息 - 用户ID: 4, 企业ID: 1, IP: 125.121.107.252
14:26:39 - article_server - INFO - [获取产品列表] 查询参数: page=1, pageSize=100, keyword=, type=, status=, 企业ID: 1, IP: 125.121.107.252
14:26:39 - article_server - INFO - [Token验证成功] 用户ID: 4
14:26:39 - article_server - INFO - [API访问] GET /api/articles/list_dashboard - IP: 125.121.107.252 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
14:26:39 - article_server - INFO - [Token验证成功] 用户ID: 4
14:26:39 - article_server - INFO - [文章仪表盘] 开始处理请求, IP: 125.121.107.252
14:26:39 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:39 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_prompt_workflow WHERE enterprise_id = %s
14:26:39 - article_server - INFO - [SQL参数] (1,)
14:26:39 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:39 - article_server - INFO - [SQL语句]
SELECT COUNT(*) as total
FROM ai_articles a
WHERE a.enterprise_id = %s
14:26:39 - article_server - INFO - [SQL参数] [1]
14:26:39 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:39 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_products WHERE enterprise_id = %s AND status != 'deleted'
14:26:39 - article_server - INFO - [SQL参数] [1]
14:26:39 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:39 - article_server - INFO - [SQL语句]
SELECT COUNT(id) as total
FROM ai_articles
WHERE enterprise_id = %s
14:26:39 - article_server - INFO - [SQL参数] (1,)
14:26:39 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
14:26:39 - article_server - INFO - [SQL数据] 查询结果: [{'total': 3}]
14:26:39 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
14:26:39 - article_server - INFO - [SQL数据] 查询结果: [{'total': 34}]
14:26:39 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
14:26:39 - article_server - INFO - [SQL数据] 查询结果: [{'total': 34}]
14:26:39 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
14:26:39 - article_server - INFO - [SQL数据] 查询结果: [{'total': 5}]
14:26:39 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:39 - article_server - INFO - [SQL语句]
SELECT id, prompt_workflow_name, workflow_id, content, usage_count, created_at, updated_at
FROM ai_prompt_workflow
WHERE enterprise_id = %s
ORDER BY created_at DESC
LIMIT %s OFFSET %s
14:26:39 - article_server - INFO - [SQL参数] (1, 100, 0)
14:26:39 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:39 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:39 - article_server - INFO - [SQL语句]
SELECT a.id, a.batch_id, a.enterprise_id, a.product_id, a.topic_type_id,
a.prompt_workflow_id, a.topic, a.title, a.content, a.department,
a.departmentids, a.author_id, a.author_name, a.department_id, a.department_name,
a.created_user_id, a.review_user_id, a.publish_user_id, a.status, a.channel,
a.review_comment, a.publish_time, a.publish_link, a.baijiahao_id, a.baijiahao_status,
a.word_count, a.image_count, a.coze_tag, a.created_at, a.updated_at,
p.name as product_name,
pw.prompt_workflow_name as prompt_name
FROM ai_articles a
LEFT JOIN ai_products p ON a.product_id = p.id
LEFT JOIN ai_prompt_workflow pw ON a.prompt_workflow_id = pw.id
WHERE a.enterprise_id = %s
ORDER BY a.created_at DESC
LIMIT %s OFFSET %s
14:26:39 - article_server - INFO - [SQL语句]
SELECT COUNT(id) as total
FROM ai_articles
WHERE enterprise_id = %s AND status = 'published_review'
14:26:39 - article_server - INFO - [SQL参数] (1,)
14:26:39 - article_server - INFO - [SQL参数] [1, 20, 0]
14:26:39 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
14:26:39 - article_server - INFO - [SQL数据] 查询结果: [{'id': 25, 'prompt_workflow_name': 'Inject基础提示词', 'workflow_id': '7576997068138659846', 'content': '你是一个健康类自媒体的编辑每天需要撰写健康类内容。我将要给你一个topic这个topic是一个问句。请你先产生一个段落的回复然后再段展开回复。每个段落都需要用一个emoji开头。最后请生成tag。段落与段落之间空一行保证可读性。\n详细要求如下\n一、核心要求\n1.\t目标受众 普通大众,非专业人士。务必:\n¡\t避免使用专业术语和书面化表达\n¡\t内容安全限制\n\uf06e\t❌ 禁止提及任何人体私密部位或敏感功能\n\uf06e\t❌ 禁用可能引发恐慌的词汇(如"危险""致命"\n2.\t内容核心 围绕“主题”,聚焦病症、问题、危害或困扰, 解释原因、原理,介绍症状、类型,提供积极、实用的解决方案、改善建议或注意事项等有价值的内容均可。\n3.\t唯一性与实用性 生成的内容需确保信息准确(基于常识)且每次生成的内容不应与历史输出重复(针对同一主题多次生成时)。\n二、内容结构及具体要求\n\uf06c\t【首段提问】 (title)\n¡\t对应内容为{{title}}\n\n\uf06c\t【次段简答】 (short-answer)\n¡\t字数 60-120字。 \n **内容要求**\n 1. 第一句话必须直接回答{{title}}的提问可以拓展1-2句话\n 2. 直接明晰,不要太笼统,禁止罗里吧嗦\n 3. 段前不要emoji表情符号\n \n **✅ 合格示例**\n 发现HPV16或18阳性这通常意味着宫颈癌筛查结果显示存在感染。接下来一般会建议做阴道镜检查再根据检查的具体情况决定治疗方案。\n\n **❌ 不合格示例**\n • 使用emoji开头\n • 没有直接回答问题\n • 过于笼统泛泛而谈 \n\n\uf06c\t【分段细答】 (contents)\n¡\t数量要求2-3段。\n¡\t字数要求 60~100字/段。\n¡\t核心要求\n\uf06e\t语言口语化、自然流畅。\n\uf06e\t段落内容必须围绕核心观点展开根据不同情况分类详细阐述问题可以是具体可行的建议吃什么、做什么、注意什么等疾病的科普主要症状、影响、诱因等或者其它逻辑合理的内容也可以。\n\uf06e\t内容有一定的逻辑包括但不限于首先、其次、最后第一第二第三不仅、而且、还有初级、中级、高级。\n\uf06e\t每段内容均衡不超过五句话确保信息全面且易于消化。\n\uf06e\t分段细答部分应当是次段简答部分的延伸但用词不能和次段简答部分有太多重复请保持多样性。\n\uf06e\t 在生成回答前,必须执行以下创造性流程:\n\t\t结构性禁令排除法行文结构不得是“定义→成因→症状→治疗”或“是什么→为什么→怎么办”及其任何变体。\n\t\t动态自我审视核心步骤\n\t\t回顾主动审视历史内容中针对相同或相似主题已使用过的所有核心阐述逻辑。\n\t\t规避明确禁止重复或小幅修改上述任何逻辑。\n\t\t创新基于当前问题的具体内涵生成一个在本质上全新的、服务于核心问题的最佳解释路径。该路径必须与所有已回顾的逻辑存在根本性差异。\n\t\t输出确认最终采用的逻辑结构应是本次对话上下文中一次独特的、未经使用的创造性表达形式。\n\n\uf06c\t【标签】 (tags)\n¡\t**单个关键词字数4-8个字。\n¡\t内容* (1)根据正文内容生成5个内容强相关tag (2)标签格式:每个关键词前后都有# (例: #养生小知识# #中医养生##习惯养成# #健康养生#\n三、变量输入\n\uf06c\t主题 {{title}}\n四、最终安全规则\n4.\t全篇禁止出现人体私密部位描述\n5.\t关键安全信息重复出现≥2次\n6.\t每句话≤20字复合句用逗号分隔\n7、不能出现 "下面就给大家仔细说说",“下面具体讲讲”,话术\n', 'usage_count': 23, 'created_at': datetime.datetime(2025, 12, 12, 20, 53, 9), 'updated_at': datetime.datetime(2025, 12, 19, 15, 54, 58)}, {'id': 14, 'prompt_workflow_name': '测试提示词', 'workflow_id': 'WF-CC8BB759', 'content': '这是一个测试提示词模板...', 'usage_count': 2, 'created_at': datetime.datetime(2025, 12, 12, 17, 41, 22), 'updated_at': datetime.datetime(2025, 12, 12, 17, 51, 54)}, {'id': 1, 'prompt_workflow_name': '种草分享型', 'workflow_id': 'WF-001', 'content': '你是一个小红书种草达人,请根据产品信息写一篇真实、有感染力的种草笔记...', 'usage_count': 0, 'created_at': datetime.datetime(2025, 12, 12, 16, 58, 22), 'updated_at': datetime.datetime(2025, 12, 12, 16, 58, 22)}]
14:26:39 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:39 - article_server - INFO - [SQL语句]
SELECT p.id, p.name, p.type_name, p.knowledge, p.status,
p.articles_total, p.published_total,
p.image_url, p.image_thumbnail_url,
p.created_at, p.updated_at
FROM ai_products p
WHERE enterprise_id = %s AND status != 'deleted'
ORDER BY p.created_at DESC
LIMIT %s OFFSET %s
14:26:39 - article_server - INFO - [SQL参数] [1, 100, 0]
14:26:39 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
14:26:39 - article_server - INFO - [SQL数据] 查询结果: [{'total': 0}]
14:26:39 - article_server - INFO - [SQL结果] 查询完成,返回 20 条记录
14:26:39 - article_server - INFO - [SQL结果] 查询完成,返回 5 条记录
14:26:39 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:39 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
14:26:39 - article_server - INFO - [SQL参数] (25,)
14:26:39 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:39 - article_server - INFO - [SQL语句]
SELECT COUNT(id) as total
FROM ai_articles
WHERE enterprise_id = %s AND status = 'published'
14:26:39 - article_server - INFO - [SQL参数] (1,)
14:26:39 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:39 - article_server - INFO - [SQL语句]
SELECT id, article_id, image_id, image_url, image_thumb_url, image_tag_id,
sort_order, keywords_id, keywords_name, department_id,
department_name, image_source, created_at
FROM ai_article_images
WHERE article_id IN (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)
ORDER BY article_id, sort_order ASC, created_at ASC
14:26:39 - article_server - INFO - [SQL参数] [51, 52, 53, 48, 49, 50, 45, 46, 47, 42, 43, 44, 37, 38, 39, 40, 41, 32, 33, 34]
14:26:39 - article_server - INFO - [SQL结果] 查询完成,返回 2 条记录
14:26:39 - article_server - INFO - [SQL数据] 查询结果: [{'id': 14, 'tag_name': '去重'}, {'id': 15, 'tag_name': '基础提示词'}]
14:26:39 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
14:26:39 - article_server - INFO - [SQL数据] 查询结果: [{'total': 0}]
14:26:39 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
14:26:39 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:39 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
14:26:39 - article_server - INFO - [SQL参数] (25,)
14:26:39 - article_server - INFO - [文章仪表盘] 查询成功, 企业ID: 1, 总数: 34, 可发: 0, 已发: 0, IP: 125.121.107.252
14:26:39 - article_server - INFO - [API响应] GET /api/articles/list_dashboard - IP: 125.121.107.252 - 状态码: 200
14:26:39 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:39 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
14:26:39 - article_server - INFO - [SQL参数] (14,)
14:26:39 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
14:26:39 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:39 - article_server - INFO - [SQL语句]
SELECT id, article_id, coze_tag, created_at
FROM ai_article_tags
WHERE article_id IN (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)
14:26:39 - article_server - INFO - [SQL参数] [51, 52, 53, 48, 49, 50, 45, 46, 47, 42, 43, 44, 37, 38, 39, 40, 41, 32, 33, 34]
14:26:39 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
14:26:39 - article_server - INFO - [SQL结果] 查询完成,返回 9 条记录
14:26:39 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:39 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
14:26:39 - article_server - INFO - [SQL参数] (13,)
14:26:39 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:39 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
14:26:39 - article_server - INFO - [SQL参数] (1,)
14:26:39 - article_server - INFO - [获取文章列表] 查询成功, 总数: 34, 当前页: 1, 每页: 20, 返回数量: 20, 企业ID: 1, IP: 125.121.107.252
14:26:39 - article_server - INFO - [API响应] GET /api/articles/list - IP: 125.121.107.252 - 状态码: 200
14:26:39 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
14:26:39 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
14:26:39 - article_server - INFO - 获取提示词列表成功,总数: 3
14:26:39 - article_server - INFO - [API响应] GET /api/prompts/list - IP: 125.121.107.252 - 状态码: 200
14:26:39 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:39 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
14:26:39 - article_server - INFO - [SQL参数] (12,)
14:26:39 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
14:26:39 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:39 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
14:26:39 - article_server - INFO - [SQL参数] (11,)
14:26:39 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
14:26:39 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:39 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
14:26:39 - article_server - INFO - [SQL参数] (1,)
14:26:39 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
14:26:39 - article_server - INFO - [SQL数据] 查询结果: [{'id': 1, 'tag_name': '保湿'}]
14:26:39 - article_server - INFO - [获取产品列表] 查询成功, 总数: 5, 当前页: 1, 每页: 100, 返回数量: 5, 企业ID: 1, IP: 125.121.107.252
14:26:39 - article_server - INFO - [API响应] GET /api/products/list - IP: 125.121.107.252 - 状态码: 200
14:26:44 - article_server - INFO - [API访问] GET /api/prompts/list - IP: 125.121.107.252 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
14:26:44 - article_server - INFO - [Token验证成功] 用户ID: 4
14:26:44 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:44 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_prompt_workflow WHERE enterprise_id = %s
14:26:44 - article_server - INFO - [SQL参数] (1,)
14:26:44 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
14:26:44 - article_server - INFO - [SQL数据] 查询结果: [{'total': 3}]
14:26:44 - article_server - INFO - [API访问] GET /api/prompts/tags/list - IP: 125.121.107.252 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
14:26:44 - article_server - INFO - [Token验证成功] 用户ID: 4
14:26:44 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:44 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_prompt_tags WHERE enterprise_id = %s
14:26:44 - article_server - INFO - [SQL参数] [1]
14:26:44 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:44 - article_server - INFO - [SQL语句]
SELECT id, prompt_workflow_name, workflow_id, content, usage_count, created_at, updated_at
FROM ai_prompt_workflow
WHERE enterprise_id = %s
ORDER BY created_at DESC
LIMIT %s OFFSET %s
14:26:44 - article_server - INFO - [SQL参数] (1, 20, 0)
14:26:44 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
14:26:44 - article_server - INFO - [SQL数据] 查询结果: [{'total': 2}]
14:26:44 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
14:26:44 - article_server - INFO - [SQL数据] 查询结果: [{'id': 25, 'prompt_workflow_name': 'Inject基础提示词', 'workflow_id': '7576997068138659846', 'content': '你是一个健康类自媒体的编辑每天需要撰写健康类内容。我将要给你一个topic这个topic是一个问句。请你先产生一个段落的回复然后再段展开回复。每个段落都需要用一个emoji开头。最后请生成tag。段落与段落之间空一行保证可读性。\n详细要求如下\n一、核心要求\n1.\t目标受众 普通大众,非专业人士。务必:\n¡\t避免使用专业术语和书面化表达\n¡\t内容安全限制\n\uf06e\t❌ 禁止提及任何人体私密部位或敏感功能\n\uf06e\t❌ 禁用可能引发恐慌的词汇(如"危险""致命"\n2.\t内容核心 围绕“主题”,聚焦病症、问题、危害或困扰, 解释原因、原理,介绍症状、类型,提供积极、实用的解决方案、改善建议或注意事项等有价值的内容均可。\n3.\t唯一性与实用性 生成的内容需确保信息准确(基于常识)且每次生成的内容不应与历史输出重复(针对同一主题多次生成时)。\n二、内容结构及具体要求\n\uf06c\t【首段提问】 (title)\n¡\t对应内容为{{title}}\n\n\uf06c\t【次段简答】 (short-answer)\n¡\t字数 60-120字。 \n **内容要求**\n 1. 第一句话必须直接回答{{title}}的提问可以拓展1-2句话\n 2. 直接明晰,不要太笼统,禁止罗里吧嗦\n 3. 段前不要emoji表情符号\n \n **✅ 合格示例**\n 发现HPV16或18阳性这通常意味着宫颈癌筛查结果显示存在感染。接下来一般会建议做阴道镜检查再根据检查的具体情况决定治疗方案。\n\n **❌ 不合格示例**\n • 使用emoji开头\n • 没有直接回答问题\n • 过于笼统泛泛而谈 \n\n\uf06c\t【分段细答】 (contents)\n¡\t数量要求2-3段。\n¡\t字数要求 60~100字/段。\n¡\t核心要求\n\uf06e\t语言口语化、自然流畅。\n\uf06e\t段落内容必须围绕核心观点展开根据不同情况分类详细阐述问题可以是具体可行的建议吃什么、做什么、注意什么等疾病的科普主要症状、影响、诱因等或者其它逻辑合理的内容也可以。\n\uf06e\t内容有一定的逻辑包括但不限于首先、其次、最后第一第二第三不仅、而且、还有初级、中级、高级。\n\uf06e\t每段内容均衡不超过五句话确保信息全面且易于消化。\n\uf06e\t分段细答部分应当是次段简答部分的延伸但用词不能和次段简答部分有太多重复请保持多样性。\n\uf06e\t 在生成回答前,必须执行以下创造性流程:\n\t\t结构性禁令排除法行文结构不得是“定义→成因→症状→治疗”或“是什么→为什么→怎么办”及其任何变体。\n\t\t动态自我审视核心步骤\n\t\t回顾主动审视历史内容中针对相同或相似主题已使用过的所有核心阐述逻辑。\n\t\t规避明确禁止重复或小幅修改上述任何逻辑。\n\t\t创新基于当前问题的具体内涵生成一个在本质上全新的、服务于核心问题的最佳解释路径。该路径必须与所有已回顾的逻辑存在根本性差异。\n\t\t输出确认最终采用的逻辑结构应是本次对话上下文中一次独特的、未经使用的创造性表达形式。\n\n\uf06c\t【标签】 (tags)\n¡\t**单个关键词字数4-8个字。\n¡\t内容* (1)根据正文内容生成5个内容强相关tag (2)标签格式:每个关键词前后都有# (例: #养生小知识# #中医养生##习惯养成# #健康养生#\n三、变量输入\n\uf06c\t主题 {{title}}\n四、最终安全规则\n4.\t全篇禁止出现人体私密部位描述\n5.\t关键安全信息重复出现≥2次\n6.\t每句话≤20字复合句用逗号分隔\n7、不能出现 "下面就给大家仔细说说",“下面具体讲讲”,话术\n', 'usage_count': 23, 'created_at': datetime.datetime(2025, 12, 12, 20, 53, 9), 'updated_at': datetime.datetime(2025, 12, 19, 15, 54, 58)}, {'id': 14, 'prompt_workflow_name': '测试提示词', 'workflow_id': 'WF-CC8BB759', 'content': '这是一个测试提示词模板...', 'usage_count': 2, 'created_at': datetime.datetime(2025, 12, 12, 17, 41, 22), 'updated_at': datetime.datetime(2025, 12, 12, 17, 51, 54)}, {'id': 1, 'prompt_workflow_name': '种草分享型', 'workflow_id': 'WF-001', 'content': '你是一个小红书种草达人,请根据产品信息写一篇真实、有感染力的种草笔记...', 'usage_count': 0, 'created_at': datetime.datetime(2025, 12, 12, 16, 58, 22), 'updated_at': datetime.datetime(2025, 12, 12, 16, 58, 22)}]
14:26:44 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:44 - article_server - INFO - [SQL语句]
SELECT id, tag_name, created_user_id, created_at, updated_at
FROM ai_prompt_tags
WHERE enterprise_id = %s
ORDER BY created_at DESC
LIMIT %s OFFSET %s
14:26:44 - article_server - INFO - [SQL参数] [1, 100, 0]
14:26:44 - article_server - INFO - [API访问] GET /api/articles/list - IP: 125.121.107.252 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
14:26:44 - article_server - INFO - [Token验证成功] 用户ID: 4
14:26:44 - article_server - INFO - [获取文章列表] 开始处理请求, IP: 125.121.107.252
14:26:44 - article_server - INFO - [获取文章列表] 用户信息 - 用户ID: 4, 企业ID: 1, IP: 125.121.107.252
14:26:44 - article_server - INFO - [获取文章列表] 查询参数: page=1, pageSize=20, keyword=, product_id=, status=, 企业ID: 1, IP: 125.121.107.252
14:26:44 - article_server - INFO - [SQL结果] 查询完成,返回 2 条记录
14:26:44 - article_server - INFO - [SQL数据] 查询结果: [{'id': 15, 'tag_name': '基础提示词', 'created_user_id': 4, 'created_at': datetime.datetime(2025, 12, 16, 14, 21, 32), 'updated_at': datetime.datetime(2025, 12, 16, 14, 21, 32)}, {'id': 14, 'tag_name': '去重', 'created_user_id': 4, 'created_at': datetime.datetime(2025, 12, 16, 14, 21, 32), 'updated_at': datetime.datetime(2025, 12, 16, 14, 21, 32)}]
14:26:44 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:44 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
14:26:44 - article_server - INFO - [SQL参数] (25,)
14:26:44 - article_server - INFO - 获取标签列表成功,总数: 2
14:26:44 - article_server - INFO - [API响应] GET /api/prompts/tags/list - IP: 125.121.107.252 - 状态码: 200
14:26:44 - article_server - INFO - [SQL结果] 查询完成,返回 2 条记录
14:26:44 - article_server - INFO - [SQL数据] 查询结果: [{'id': 14, 'tag_name': '去重'}, {'id': 15, 'tag_name': '基础提示词'}]
14:26:44 - article_server - INFO - [API访问] GET /api/articles/list_dashboard - IP: 125.121.107.252 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
14:26:44 - article_server - INFO - [Token验证成功] 用户ID: 4
14:26:44 - article_server - INFO - [文章仪表盘] 开始处理请求, IP: 125.121.107.252
14:26:44 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:44 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
14:26:44 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:44 - article_server - INFO - [SQL参数] (14,)
14:26:44 - article_server - INFO - [SQL语句]
SELECT COUNT(id) as total
FROM ai_articles
WHERE enterprise_id = %s
14:26:44 - article_server - INFO - [SQL参数] (1,)
14:26:44 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:44 - article_server - INFO - [SQL语句]
SELECT COUNT(*) as total
FROM ai_articles a
WHERE a.enterprise_id = %s
14:26:44 - article_server - INFO - [SQL参数] [1]
14:26:44 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
14:26:44 - article_server - INFO - [SQL数据] 查询结果: [{'total': 34}]
14:26:44 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
14:26:44 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
14:26:44 - article_server - INFO - [SQL数据] 查询结果: [{'total': 34}]
14:26:44 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:44 - article_server - INFO - [SQL语句]
SELECT COUNT(id) as total
FROM ai_articles
WHERE enterprise_id = %s AND status = 'published_review'
14:26:44 - article_server - INFO - [SQL参数] (1,)
14:26:44 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:44 - article_server - INFO - [SQL语句]
SELECT a.id, a.batch_id, a.enterprise_id, a.product_id, a.topic_type_id,
a.prompt_workflow_id, a.topic, a.title, a.content, a.department,
a.departmentids, a.author_id, a.author_name, a.department_id, a.department_name,
a.created_user_id, a.review_user_id, a.publish_user_id, a.status, a.channel,
a.review_comment, a.publish_time, a.publish_link, a.baijiahao_id, a.baijiahao_status,
a.word_count, a.image_count, a.coze_tag, a.created_at, a.updated_at,
p.name as product_name,
pw.prompt_workflow_name as prompt_name
FROM ai_articles a
LEFT JOIN ai_products p ON a.product_id = p.id
LEFT JOIN ai_prompt_workflow pw ON a.prompt_workflow_id = pw.id
WHERE a.enterprise_id = %s
ORDER BY a.created_at DESC
LIMIT %s OFFSET %s
14:26:44 - article_server - INFO - [SQL参数] [1, 20, 0]
14:26:44 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:44 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
14:26:44 - article_server - INFO - [SQL参数] (1,)
14:26:44 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
14:26:44 - article_server - INFO - [SQL数据] 查询结果: [{'total': 0}]
14:26:44 - article_server - INFO - [SQL结果] 查询完成,返回 20 条记录
14:26:44 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
14:26:44 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:44 - article_server - INFO - [SQL语句]
SELECT COUNT(id) as total
FROM ai_articles
WHERE enterprise_id = %s AND status = 'published'
14:26:44 - article_server - INFO - [SQL参数] (1,)
14:26:44 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:44 - article_server - INFO - [SQL语句]
SELECT id, article_id, image_id, image_url, image_thumb_url, image_tag_id,
sort_order, keywords_id, keywords_name, department_id,
department_name, image_source, created_at
FROM ai_article_images
WHERE article_id IN (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)
ORDER BY article_id, sort_order ASC, created_at ASC
14:26:44 - article_server - INFO - [SQL参数] [51, 52, 53, 48, 49, 50, 45, 46, 47, 42, 43, 44, 37, 38, 39, 40, 41, 32, 33, 34]
14:26:44 - article_server - INFO - [API访问] GET /api/products/list - IP: 125.121.107.252 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
14:26:44 - article_server - INFO - [Token验证成功] 用户ID: 4
14:26:44 - article_server - INFO - [获取产品列表] 开始处理请求, IP: 125.121.107.252
14:26:44 - article_server - INFO - [获取产品列表] 用户信息 - 用户ID: 4, 企业ID: 1, IP: 125.121.107.252
14:26:44 - article_server - INFO - [获取产品列表] 查询参数: page=1, pageSize=100, keyword=, type=, status=, 企业ID: 1, IP: 125.121.107.252
14:26:44 - article_server - INFO - 获取提示词列表成功,总数: 3
14:26:44 - article_server - INFO - [API响应] GET /api/prompts/list - IP: 125.121.107.252 - 状态码: 200
14:26:44 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
14:26:44 - article_server - INFO - [SQL数据] 查询结果: [{'total': 0}]
14:26:44 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
14:26:44 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:44 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_products WHERE enterprise_id = %s AND status != 'deleted'
14:26:44 - article_server - INFO - [SQL参数] [1]
14:26:44 - article_server - INFO - [API访问] GET /api/prompts/list - IP: 125.121.107.252 - User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Sa
14:26:44 - article_server - INFO - [Token验证成功] 用户ID: 4
14:26:44 - article_server - INFO - [文章仪表盘] 查询成功, 企业ID: 1, 总数: 34, 可发: 0, 已发: 0, IP: 125.121.107.252
14:26:44 - article_server - INFO - [API响应] GET /api/articles/list_dashboard - IP: 125.121.107.252 - 状态码: 200
14:26:44 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:44 - article_server - INFO - [SQL语句]
SELECT id, article_id, coze_tag, created_at
FROM ai_article_tags
WHERE article_id IN (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)
14:26:44 - article_server - INFO - [SQL参数] [51, 52, 53, 48, 49, 50, 45, 46, 47, 42, 43, 44, 37, 38, 39, 40, 41, 32, 33, 34]
14:26:44 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
14:26:44 - article_server - INFO - [SQL数据] 查询结果: [{'total': 5}]
14:26:44 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:44 - article_server - INFO - [SQL语句] SELECT COUNT(*) as total FROM ai_prompt_workflow WHERE enterprise_id = %s
14:26:44 - article_server - INFO - [SQL参数] (1,)
14:26:44 - article_server - INFO - [SQL结果] 查询完成,返回 9 条记录
14:26:44 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
14:26:44 - article_server - INFO - [SQL数据] 查询结果: [{'total': 3}]
14:26:44 - article_server - INFO - [获取文章列表] 查询成功, 总数: 34, 当前页: 1, 每页: 20, 返回数量: 20, 企业ID: 1, IP: 125.121.107.252
14:26:44 - article_server - INFO - [API响应] GET /api/articles/list - IP: 125.121.107.252 - 状态码: 200
14:26:44 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:44 - article_server - INFO - [SQL语句]
SELECT p.id, p.name, p.type_name, p.knowledge, p.status,
p.articles_total, p.published_total,
p.image_url, p.image_thumbnail_url,
p.created_at, p.updated_at
FROM ai_products p
WHERE enterprise_id = %s AND status != 'deleted'
ORDER BY p.created_at DESC
LIMIT %s OFFSET %s
14:26:44 - article_server - INFO - [SQL参数] [1, 100, 0]
14:26:44 - article_server - INFO - [SQL结果] 查询完成,返回 5 条记录
14:26:44 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:44 - article_server - INFO - [SQL语句]
SELECT id, prompt_workflow_name, workflow_id, content, usage_count, created_at, updated_at
FROM ai_prompt_workflow
WHERE enterprise_id = %s
ORDER BY created_at DESC
LIMIT %s OFFSET %s
14:26:44 - article_server - INFO - [SQL参数] (1, 100, 0)
14:26:44 - article_server - INFO - [SQL结果] 查询完成,返回 3 条记录
14:26:44 - article_server - INFO - [SQL数据] 查询结果: [{'id': 25, 'prompt_workflow_name': 'Inject基础提示词', 'workflow_id': '7576997068138659846', 'content': '你是一个健康类自媒体的编辑每天需要撰写健康类内容。我将要给你一个topic这个topic是一个问句。请你先产生一个段落的回复然后再段展开回复。每个段落都需要用一个emoji开头。最后请生成tag。段落与段落之间空一行保证可读性。\n详细要求如下\n一、核心要求\n1.\t目标受众 普通大众,非专业人士。务必:\n¡\t避免使用专业术语和书面化表达\n¡\t内容安全限制\n\uf06e\t❌ 禁止提及任何人体私密部位或敏感功能\n\uf06e\t❌ 禁用可能引发恐慌的词汇(如"危险""致命"\n2.\t内容核心 围绕“主题”,聚焦病症、问题、危害或困扰, 解释原因、原理,介绍症状、类型,提供积极、实用的解决方案、改善建议或注意事项等有价值的内容均可。\n3.\t唯一性与实用性 生成的内容需确保信息准确(基于常识)且每次生成的内容不应与历史输出重复(针对同一主题多次生成时)。\n二、内容结构及具体要求\n\uf06c\t【首段提问】 (title)\n¡\t对应内容为{{title}}\n\n\uf06c\t【次段简答】 (short-answer)\n¡\t字数 60-120字。 \n **内容要求**\n 1. 第一句话必须直接回答{{title}}的提问可以拓展1-2句话\n 2. 直接明晰,不要太笼统,禁止罗里吧嗦\n 3. 段前不要emoji表情符号\n \n **✅ 合格示例**\n 发现HPV16或18阳性这通常意味着宫颈癌筛查结果显示存在感染。接下来一般会建议做阴道镜检查再根据检查的具体情况决定治疗方案。\n\n **❌ 不合格示例**\n • 使用emoji开头\n • 没有直接回答问题\n • 过于笼统泛泛而谈 \n\n\uf06c\t【分段细答】 (contents)\n¡\t数量要求2-3段。\n¡\t字数要求 60~100字/段。\n¡\t核心要求\n\uf06e\t语言口语化、自然流畅。\n\uf06e\t段落内容必须围绕核心观点展开根据不同情况分类详细阐述问题可以是具体可行的建议吃什么、做什么、注意什么等疾病的科普主要症状、影响、诱因等或者其它逻辑合理的内容也可以。\n\uf06e\t内容有一定的逻辑包括但不限于首先、其次、最后第一第二第三不仅、而且、还有初级、中级、高级。\n\uf06e\t每段内容均衡不超过五句话确保信息全面且易于消化。\n\uf06e\t分段细答部分应当是次段简答部分的延伸但用词不能和次段简答部分有太多重复请保持多样性。\n\uf06e\t 在生成回答前,必须执行以下创造性流程:\n\t\t结构性禁令排除法行文结构不得是“定义→成因→症状→治疗”或“是什么→为什么→怎么办”及其任何变体。\n\t\t动态自我审视核心步骤\n\t\t回顾主动审视历史内容中针对相同或相似主题已使用过的所有核心阐述逻辑。\n\t\t规避明确禁止重复或小幅修改上述任何逻辑。\n\t\t创新基于当前问题的具体内涵生成一个在本质上全新的、服务于核心问题的最佳解释路径。该路径必须与所有已回顾的逻辑存在根本性差异。\n\t\t输出确认最终采用的逻辑结构应是本次对话上下文中一次独特的、未经使用的创造性表达形式。\n\n\uf06c\t【标签】 (tags)\n¡\t**单个关键词字数4-8个字。\n¡\t内容* (1)根据正文内容生成5个内容强相关tag (2)标签格式:每个关键词前后都有# (例: #养生小知识# #中医养生##习惯养成# #健康养生#\n三、变量输入\n\uf06c\t主题 {{title}}\n四、最终安全规则\n4.\t全篇禁止出现人体私密部位描述\n5.\t关键安全信息重复出现≥2次\n6.\t每句话≤20字复合句用逗号分隔\n7、不能出现 "下面就给大家仔细说说",“下面具体讲讲”,话术\n', 'usage_count': 23, 'created_at': datetime.datetime(2025, 12, 12, 20, 53, 9), 'updated_at': datetime.datetime(2025, 12, 19, 15, 54, 58)}, {'id': 14, 'prompt_workflow_name': '测试提示词', 'workflow_id': 'WF-CC8BB759', 'content': '这是一个测试提示词模板...', 'usage_count': 2, 'created_at': datetime.datetime(2025, 12, 12, 17, 41, 22), 'updated_at': datetime.datetime(2025, 12, 12, 17, 51, 54)}, {'id': 1, 'prompt_workflow_name': '种草分享型', 'workflow_id': 'WF-001', 'content': '你是一个小红书种草达人,请根据产品信息写一篇真实、有感染力的种草笔记...', 'usage_count': 0, 'created_at': datetime.datetime(2025, 12, 12, 16, 58, 22), 'updated_at': datetime.datetime(2025, 12, 12, 16, 58, 22)}]
14:26:44 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:44 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
14:26:44 - article_server - INFO - [SQL参数] (25,)
14:26:44 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:44 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
14:26:44 - article_server - INFO - [SQL参数] (25,)
14:26:44 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
14:26:45 - article_server - INFO - [SQL结果] 查询完成,返回 2 条记录
14:26:45 - article_server - INFO - [SQL数据] 查询结果: [{'id': 14, 'tag_name': '去重'}, {'id': 15, 'tag_name': '基础提示词'}]
14:26:45 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:45 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
14:26:45 - article_server - INFO - [SQL参数] (13,)
14:26:45 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:45 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
14:26:45 - article_server - INFO - [SQL参数] (14,)
14:26:45 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
14:26:45 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
14:26:45 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:45 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
14:26:45 - article_server - INFO - [SQL参数] (12,)
14:26:45 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:45 - article_server - INFO - [SQL语句]
SELECT t.id, t.tag_name
FROM ai_prompt_tags t
INNER JOIN ai_prompt_tags_relation r ON t.id = r.tag_id
WHERE r.prompt_workflow_id = %s
14:26:45 - article_server - INFO - [SQL参数] (1,)
14:26:45 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
14:26:45 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
14:26:45 - article_server - INFO - 获取提示词列表成功,总数: 3
14:26:45 - article_server - INFO - [API响应] GET /api/prompts/list - IP: 125.121.107.252 - 状态码: 200
14:26:45 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:45 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
14:26:45 - article_server - INFO - [SQL参数] (11,)
14:26:45 - article_server - INFO - [SQL结果] 查询完成,返回 0 条记录
14:26:45 - article_server - INFO - [SQL执行] 开始执行查询SQL
14:26:45 - article_server - INFO - [SQL语句]
SELECT id, tag_name
FROM ai_product_tags
WHERE product_id = %s
14:26:45 - article_server - INFO - [SQL参数] (1,)
14:26:45 - article_server - INFO - [SQL结果] 查询完成,返回 1 条记录
14:26:45 - article_server - INFO - [SQL数据] 查询结果: [{'id': 1, 'tag_name': '保湿'}]
14:26:45 - article_server - INFO - [获取产品列表] 查询成功, 总数: 5, 当前页: 1, 每页: 100, 返回数量: 5, 企业ID: 1, IP: 125.121.107.252
14:26:45 - article_server - INFO - [API响应] GET /api/products/list - IP: 125.121.107.252 - 状态码: 200