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