Commit 51481a24 authored by Yaowentong's avatar Yaowentong

美团30遍截图

分享链接
来源source字段
parent 82720788
...@@ -205,35 +205,11 @@ if __name__ == '__main__': ...@@ -205,35 +205,11 @@ if __name__ == '__main__':
'XHSA:geo:batch:list', 'XHSA:geo:batch:list',
'geo:task_commit:list'] 'geo:task_commit:list']
redis5 = init_redis()
# delete(redis_key)
def init_redis4(): print(redis5.delete('mt:snipaste_v3:only_content'))
try: print(redis5.delete('mt:snipaste_v3:with_share'))
redis_client = redis.Redis(
host="172.16.0.24",
port=6379,
db=4,
password="aiyingli@@123",
socket_timeout=5,
decode_responses=True
)
return redis_client
except Exception as e:
return None
# aa = list(aa)
# for a in aa:
# sec_uid = get_sec_id(a)
# get_user_info(sec_uid)
# print(t.scard('third_hx_user_id'))
# while 1:
# for k in key_list:
# print(f"{k}----{t.llen(k)}")
# time.sleep(10)
#
# print(len(t.smembers(key)))
......
...@@ -348,6 +348,8 @@ def qian_report(): ...@@ -348,6 +348,8 @@ def qian_report():
req_time_map[req_id] = created_at req_time_map[req_id] = created_at
req_brand_map[req_id] = b req_brand_map[req_id] = b
if not req_ids:
return fail("未查询到请求记录")
req_id_sql = ",".join([f"'{req_id}'" for req_id in req_ids]) req_id_sql = ",".join([f"'{req_id}'" for req_id in req_ids])
if platform: if platform:
platform_list = ",".join([f"'{p}'" for p in platform]) platform_list = ",".join([f"'{p}'" for p in platform])
......
import traceback
import uuid import uuid
import time import time
import json import json
import secrets import secrets
from datetime import datetime from datetime import datetime
import loguru
from flask import request, jsonify, Flask,Blueprint from flask import request, jsonify, Flask,Blueprint
from aidso_geo.config.base_config import init_redis8, PlatformType from aidso_geo.config.base_config import init_redis8, PlatformType
...@@ -213,7 +216,8 @@ def parse_allow_platforms(raw_value): ...@@ -213,7 +216,8 @@ def parse_allow_platforms(raw_value):
if not isinstance(arr, list): if not isinstance(arr, list):
return set() return set()
return {str(x).strip() for x in arr if str(x).strip()} return {str(x).strip() for x in arr if str(x).strip()}
except Exception: except Exception as e:
traceback.print_exc()
return set() return set()
return set() return set()
......
...@@ -159,6 +159,54 @@ def yuanbao_android_process_jd_eco(data,eco_list): ...@@ -159,6 +159,54 @@ def yuanbao_android_process_jd_eco(data,eco_list):
return eco_result return eco_result
def yuanbao_process_jd_eco(data,eco_list):
eco_result = []
task_id = data.get('taskId')
platform = data.get('platform')
req_id = data.get('reqId')
prompt = data.get('prompt')
for index, item in enumerate(eco_list):
raw_data = {
"eco_id": item.get('sku', ''),
"eco_url": item.get('pc_url', '') ,
"eco_title": item.get('sku_name', ''),
"eco_index": index+1,
"eco_pic": item.get('image_url', ''),
"eco_price": item.get('price', ''),
"eco_source": 'jdeco',
"platform": platform,
"task_id": task_id,
"req_id": req_id,
"prompt": prompt
}
eco_result.append(raw_data)
return eco_result
def yuanbao_process_txmap_eco(data,eco_list):
eco_result = []
task_id = data.get('taskId')
platform = data.get('platform')
req_id = data.get('reqId')
prompt = data.get('prompt')
for index, item in enumerate(eco_list):
raw_data = {
"eco_id": item.get('poiId', ''),
"eco_url": item.get('jumpUrl', '') ,
"eco_title": item.get('title', ''),
"eco_index": index+1,
"eco_pic": item.get('image_url', 'https://tcdn.aidso.com/dso/pc/aiDialoguePng/112_112.jpg?v=2'),
"eco_price": item.get('avgPrice', ''),
"eco_source": 'txmap',
"platform": platform,
"task_id": task_id,
"req_id": req_id,
"prompt": prompt
}
eco_result.append(raw_data)
return eco_result
def yuanbao_android_process_txmap_eco(data,eco_list): def yuanbao_android_process_txmap_eco(data,eco_list):
eco_result = [] eco_result = []
task_id = data.get('taskId') task_id = data.get('taskId')
...@@ -205,7 +253,11 @@ def save_eco_data_to_bh(data,eco_type,eco_list): ...@@ -205,7 +253,11 @@ def save_eco_data_to_bh(data,eco_type,eco_list):
eco_result =yuanbao_android_process_jd_eco(data,eco_list) eco_result =yuanbao_android_process_jd_eco(data,eco_list)
if eco_type == 'txmap': if eco_type == 'txmap':
eco_result = yuanbao_android_process_txmap_eco(data,eco_list) eco_result = yuanbao_android_process_txmap_eco(data,eco_list)
if platform == 'TXYB':
if eco_type == 'jdeco':
eco_result =yuanbao_process_jd_eco(data,eco_list)
if eco_type == 'txmap':
eco_result = yuanbao_process_txmap_eco(data,eco_list)
bh_utils.insert_data('geo_eco_data',eco_result) bh_utils.insert_data('geo_eco_data',eco_result)
......
...@@ -1860,12 +1860,16 @@ def process_call_back(task_data, result): ...@@ -1860,12 +1860,16 @@ def process_call_back(task_data, result):
platform = task_data.get('platform') platform = task_data.get('platform')
req_id = task_data.get('reqId') req_id = task_data.get('reqId')
spider_data = result.get('data') spider_data = result.get('data')
share_url_data = result.get('share_url','')
if spider_data == 400: if spider_data == 400:
scheduler(task_data) scheduler(task_data)
else: else:
logger.success(f"{req_id}--{platform}-------CALL_BACK_START") logger.success(f"{req_id}--{platform}-------CALL_BACK_START")
put_string_to_tos(f'geo/{task_id}/{platform}/original.text', spider_data) put_string_to_tos(f'geo/{task_id}/{platform}/original.text', spider_data)
put_string_to_tos(f'geo/{task_id}/{platform}/spider_result.text', result)
if share_url_data:
put_string_to_tos(f'geo/{task_id}/{platform}/share_url.text', share_url_data)
req_check = bh_utils.query_data(f"select status from geo_commit_task where reqId ='{req_id}'") req_check = bh_utils.query_data(f"select status from geo_commit_task where reqId ='{req_id}'")
req_status = "" req_status = ""
if req_check and len(req_check) > 0: if req_check and len(req_check) > 0:
...@@ -2014,7 +2018,7 @@ if __name__ == '__main__': ...@@ -2014,7 +2018,7 @@ if __name__ == '__main__':
# data_list = bh_utils.query_data("select * from geo_commit_task where platform = 'DP' and thinking_enabled = 1 and insertime > 1777564800 and type!='success' order by insertime asc") # data_list = bh_utils.query_data("select * from geo_commit_task where platform = 'DP' and thinking_enabled = 1 and insertime > 1777564800 and type!='success' order by insertime asc")
data_list = bh_utils.query_data("select * from geo_commit_task where status != 'SUCCESS' and prompt like '%附近美食推荐%'") data_list = bh_utils.query_data("select * from geo_commit_task where status = 'ING'")
# data_list = bh_utils.query_data("select * from geo_commit_task where prompt = '飞鹤和君乐宝奶粉的异同点对比' and platform = 'DB'") # data_list = bh_utils.query_data("select * from geo_commit_task where prompt = '飞鹤和君乐宝奶粉的异同点对比' and platform = 'DB'")
# data_list = bh_utils.query_data("select * from geo_commit_task where pt = '20260720' and platform = 'TYQW' and type = 'success' ") # data_list = bh_utils.query_data("select * from geo_commit_task where pt = '20260720' and platform = 'TYQW' and type = 'success' ")
......
...@@ -29,13 +29,46 @@ def qianwen_android_process_original_data(task_data): ...@@ -29,13 +29,46 @@ def qianwen_android_process_original_data(task_data):
original_content = get_string_from_tos(file_path) original_content = get_string_from_tos(file_path)
try: try:
sse_json_data = json.loads(original_content) sse_json_data = json.loads(original_content)
# sse_json_data = json.loads(json_original.get('sse')) # sse_json_data = json.loads(json_original.get('sse'))
response_content = sse_json_data.get('reply_text','') response_content = sse_json_data.get('reply_text','')
think_content = sse_json_data.get('deepthink_text','') think_content = sse_json_data.get('deepthink_text','')
paa_answer = sse_json_data.get('paa_answer','') paa_answer = sse_json_data.get('paa_answer','')
bar_sources = sse_json_data.get('bar_sources') bar_sources = sse_json_data.get('bar_sources')
# amap_pois = sse_json_data.get('amap_pois') amap_pois = sse_json_data.get('amap_pois')
gaode_list = []
if amap_pois:
for key,value in amap_pois.items():
for v in value:
modelInput = v.get('future_data').get('modelInput')
biz_ext = v.get('biz_ext')
poi_summary = v.get('summary1')
photos = v.get('photos')
distance_formatted = v.get('distance')
cost = biz_ext.get('cost')
poi_id = modelInput.get('poi_id')
name = modelInput.get('name')
distance_address = modelInput.get('address')
gaode_result = {
"url": f"https://www.amap.com/place/{poi_id}",
"source_seq": key,
"name": name,
"poi_id": poi_id,
"cost": cost,
"poi_summary": poi_summary,
"distance_formatted": distance_formatted,
"photos": photos[0].get("url", "") if isinstance(photos,
list) and photos and isinstance(
photos[0], dict) else "",
"address": distance_address,
}
gaode_list.append(gaode_result)
gaode_data_list.extend(gaode_list)
if gaode_list:
for g in gaode_list:
response_content += 'render_ecom_card_widget_gaode_start:'
gaode_str = json.dumps([g], ensure_ascii=False)
response_content += gaode_str
response_content += 'render_ecom_card_widget_gaode_end:\n'
source_content = {} source_content = {}
if bar_sources: if bar_sources:
source_content =next( source_content =next(
...@@ -99,6 +132,8 @@ def qianwen_android_process_original_data(task_data): ...@@ -99,6 +132,8 @@ def qianwen_android_process_original_data(task_data):
paa_json = json.loads(paa_answer) paa_json = json.loads(paa_answer)
for paa in paa_json: for paa in paa_json:
suggestions.append(paa.get('paa_query')) suggestions.append(paa.get('paa_query'))
if gaode_data_list:
save_eco_data_to_bh(task_data, 'gaode', gaode_data_list)
except Exception as e: except Exception as e:
content_list = original_content.split("\n") content_list = original_content.split("\n")
...@@ -448,7 +483,7 @@ if __name__ == '__main__': ...@@ -448,7 +483,7 @@ if __name__ == '__main__':
# fb8de08c16484143a7299c06ba20c90d 老版本 # fb8de08c16484143a7299c06ba20c90d 老版本
# e09e1b7db91f4d0382e86458d8462147 新版本 # e09e1b7db91f4d0382e86458d8462147 新版本
# data_list = bh_utils.query_data(f"select * from geo_commit_task where taskId = '0001e01d-a8ea-405e-acef-93e4f55abbff' and platform = 'TYQWA'") # data_list = bh_utils.query_data(f"select * from geo_commit_task where taskId = '0001e01d-a8ea-405e-acef-93e4f55abbff' and platform = 'TYQWA'")
data_list = bh_utils.query_data(f"select * from geo_commit_task where taskId = '09385d1a412b48859543254410c56cc8' and platform = 'TYQWA'") data_list = bh_utils.query_data(f"select * from geo_commit_task where taskId = '53f0d16d0fa64d3e89c4b9af7aae86e8' and platform = 'TYQWA'")
def handle_item(i): def handle_item(i):
......
import json import json
import re
from aidso_geo.models.eco_data_process import save_eco_data_to_bh
from aidso_geo.utils import robot_utils, bh_utils from aidso_geo.utils import robot_utils, bh_utils
from aidso_geo.utils.ai_interface import get_parse_sse_result from aidso_geo.utils.ai_interface import get_parse_sse_result
from aidso_geo.utils.tos_utils import get_string_from_tos from aidso_geo.utils.tos_utils import get_string_from_tos
from aidso_geo.models import spider_save_tos from aidso_geo.models import spider_save_tos
def process_price(ori_price):
def yuanbao_process_original_data(data): price_match = re.search(
file_path = f'geo/{data["taskId"]}/{data["platform"]}/original.text' r"\d+(?:\.\d+)?",
str(ori_price).replace(",", "")
)
if price_match:
price_number = float(price_match.group())
price = int(price_number) if price_number.is_integer() else price_number
else:
price = 0
return price
def yuanbao_process_original_data(task_data):
file_path = f'geo/{task_data["taskId"]}/{task_data["platform"]}/original.text'
url_list = [] url_list = []
think_content = "" think_content = ""
response_process = "" response_process = ""
...@@ -19,6 +35,8 @@ def yuanbao_process_original_data(data): ...@@ -19,6 +35,8 @@ def yuanbao_process_original_data(data):
think_bool = False think_bool = False
response_bool = False response_bool = False
rich_media_block =[] rich_media_block =[]
jd_goods = []
tx_goods = []
try: try:
original_content = get_string_from_tos(file_path) original_content = get_string_from_tos(file_path)
content_list = original_content.split("\n\n") content_list = original_content.split("\n\n")
...@@ -49,9 +67,83 @@ def yuanbao_process_original_data(data): ...@@ -49,9 +67,83 @@ def yuanbao_process_original_data(data):
if json_data.get('type') == 'image': if json_data.get('type') == 'image':
response_content = "生成了图片" response_content = "生成了图片"
if json_data.get('type') == 'replace': if json_data.get('type') == 'replace':
replace_data = json_data.get("replace") or {}
if json_data.get('replace').get('display') =='videoBoxV2': if json_data.get('replace').get('display') =='videoBoxV2':
rich_media_block.extend(json_data.get('replace').get('multimedias')) rich_media_block.extend(json_data.get('replace').get('multimedias'))
if replace_data.get("display") == "goods":
replace_media_id = replace_data.get('id')
for media in replace_data.get("multimedias") or []:
if not isinstance(media, dict):
continue
goods_content = media.get("goodsContent") or {}
goods = goods_content.get("goods") or {}
# 没有真实商品数据,说明只是占位/加载事件
if not isinstance(goods, dict):
continue
sku_id = goods.get("skuId")
sku_name = goods.get("skuName")
# 有商品 ID 和商品名才认为是有效商品
if not sku_id or not sku_name:
continue
raw_content = {}
try:
raw_content = json.loads(goods.get("rawContent") or "{}")
except (TypeError, json.JSONDecodeError):
raw_content = {}
endpoint_url = goods_content.get("endpointUrl") or {}
shop_id = goods.get("shopId") or raw_content.get("shopId", "")
goods_data = {
"replace_media_id": replace_media_id,
"sku": str(sku_id),
"sku_name": sku_name,
"query": goods.get("query", ""),
"image_url": (
goods.get("imagePath")
or raw_content.get("whiteImage")
or raw_content.get("imgPath")
or ""
),
"price": process_price(goods.get("purchasePrice", "")),
"shop_name": goods.get("shopName", ""),
"shop_id": shop_id,
"source": goods.get("source", ""),
"pc_url": endpoint_url.get("pcUrl", "")
}
jd_goods.append(goods_data)
if json_data.get('replace').get('display') == 'surroundingsV3':
for media in replace_data.get("multimedias") or []:
if not isinstance(media, dict):
continue
tx_data = {
"title": media.get('title'),
"address": media.get('address'),
"jumpUrl": media.get('jumpUrl'),
"poiId": media.get('poiId'),
"distance": media.get('distance'),
"avgPrice": media.get('avgPrice'),
"starLevel": media.get('starLevel')
}
tx_goods.append(tx_data)
if jd_goods:
response_content += '\n\nrender_ecom_card_widget_jd_start:\n\n'
jd_goods_str = json.dumps(jd_goods, ensure_ascii=False)
response_content += jd_goods_str
response_content += '\n\nrender_ecom_card_widget_jd_end:'
save_eco_data_to_bh(task_data,'jdeco',jd_goods)
if tx_goods:
response_content += '\n\nrender_ecom_card_widget_txmap_start:\n\n'
tx_goods_str = json.dumps(tx_goods, ensure_ascii=False)
response_content += tx_goods_str
response_content += '\n\nrender_ecom_card_widget_txmap_end:'
save_eco_data_to_bh(task_data,'txmap',tx_goods)
spider_save_tos.process_and_save_files(file_path, search_keyword, url_list, think_content, response_content, spider_save_tos.process_and_save_files(file_path, search_keyword, url_list, think_content, response_content,
suggestions,rich_media_block) suggestions,rich_media_block)
return (file_path, search_keyword, url_list, think_content, response_content, suggestions) return (file_path, search_keyword, url_list, think_content, response_content, suggestions)
...@@ -79,7 +171,7 @@ def yuanbao_process_original_data(data): ...@@ -79,7 +171,7 @@ def yuanbao_process_original_data(data):
return (file_path, search_keyword, url_list, think_content, response_content, suggestions) return (file_path, search_keyword, url_list, think_content, response_content, suggestions)
if __name__ == '__main__': if __name__ == '__main__':
data_list = bh_utils.query_data(f"select * from geo_commit_task where taskId = '9dfd84a4-f551-4d74-b1ee-9367aed53a8c' and platform = 'TXYB'") data_list = bh_utils.query_data(f"select * from geo_commit_task where taskId = 'b081fc33-0993-4186-a109-a59160200ffb' and platform = 'TXYB'")
# # # # # #
# # # # # #
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment