Commit 49195aab authored by Yaowentong's avatar Yaowentong

deepseek app引用来源变更

parent 2c4c0b22
......@@ -158,7 +158,7 @@ def task_commit():
type = data.get('type',"")
platform = data.get('platform',"")
prompt = data.get('prompt',"")
data["pt"] = datetime.now().strftime("%Y%m%d")
required_fields = ["prompt", "taskId", "reqId", "platform", "type"]
missing_fields = [field for field in required_fields if field not in data]
if missing_fields:
......
......@@ -458,7 +458,8 @@ def mt_task_commit():
prompt = data.get("prompt")
plat_form = data.get("platform")
if len(prompt) > 256:
return err(400, "prompt长度不能超过256个字符")
if not prompt:
return err(400, "missing required field: prompt")
......
import json
import re
from aidso_geo.models import spider_save_tos
from aidso_geo.utils import robot_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.tos_utils import get_string_from_tos
......@@ -17,6 +17,7 @@ def deepseek_android_process_original_data(data):
think_bool = False
suggestions = []
response_bool = False
url_id_map = {}
try:
......@@ -34,6 +35,8 @@ def deepseek_android_process_original_data(data):
# 提取并解析JSON数据
data_str = item.split("data: ")[1]
json_data = json.loads(data_str)
except (IndexError, json.JSONDecodeError):
continue
if isinstance(json_data.get('v'), dict):
......@@ -95,6 +98,50 @@ def deepseek_android_process_original_data(data):
if json_data.get('p') == 'response/fragments' and json_data.get('v')[0].get('type') == 'TIP':
response_bool = False
continue
if isinstance(json_data.get('v'),list):
v_json_data = json_data.get('v')
has_tool_search = False
tool_search_id = None
for item in v_json_data:
if item.get('p') == 'references':
references = item.get('v') or []
if isinstance(references, list):
for reference in references:
if (
isinstance(reference, dict)
and reference.get('type') == 'TOOL_OPEN'
):
has_tool_search = True
tool_search_id = reference.get('id')
break
for v in v_json_data:
if v.get('p') == 'content' and has_tool_search:
p_content = v.get('v') or ''
p_content = re.sub(
r'\[reference:\d+\]',
f'[reference:{tool_search_id}]',
p_content
)
response_content+=p_content
if v.get('p') == 'fragments':
if v.get('p') == 'fragments':
fragments = v.get('v') or []
if isinstance(fragments, list):
for fragment in fragments:
if (
isinstance(fragment, dict)
and fragment.get('type') == 'TOOL_OPEN'
and fragment.get('result') is not None
):
url_id_map[fragment.get('result').get('url')] = fragment.get('id')
if json_data.get('p') == 'response':
response_bool = False
continue
......@@ -149,6 +196,25 @@ def deepseek_android_process_original_data(data):
if response_bool:
if isinstance(json_data.get('v'),str):
response_content += json_data.get('v')
used_ids = set(url_id_map.values())
next_id = 1
for item in url_list:
url = item.get('url')
if url in url_id_map:
item['cite_index'] = url_id_map[url]
elif item.get('cite_index') is None:
while next_id in used_ids:
next_id += 1
item['cite_index'] = next_id
used_ids.add(next_id)
next_id += 1
spider_save_tos.process_and_save_files(file_path, search_keyword, url_list, think_content, response_content,
suggestions)
return (file_path, search_keyword, url_list, think_content, response_content, suggestions)
......@@ -176,9 +242,29 @@ def deepseek_android_process_original_data(data):
return (file_path, search_keyword, url_list, think_content, response_content, suggestions)
if __name__ == '__main__':
file_path1 = 'geo/b1480658-f379-4ca7-8897-51ffef64b2d0/DPA/original.text'
file_path2 = 'geo/799bfc72-60dc-4333-b551-3e1d284c7570/DPA/original.text'
# file_path1 = "geo/0f59c196-aff1-46a5-aa50-5c792ebf481e/DPA/original.text"
# file_path = "geo/0c0abba3-9122244-wwwsss4e2dddd1ssssaaass-96aaaa2wwww1-10086/DPA/original.text"
# file_path2 = "geo/0a715fc6-ecc8-4e48-baf1-abc0c9477c1e/DPA/original.text"
deepseek_android_process_original_data(file_path2)
data_list = bh_utils.query_data(f"select * from geo_commit_task where taskId = 'dd37fa86e6dd49c4b0617ceb47cea25c' and platform = 'DPA'")
# # #
# # #
# # # # #
def handle_item(i):
if i.get('comWordsMap'):
i['comWordsMap'] = json.loads(i.get('comWordsMap'))
if i.get('brandWords'):
i['brandWords'] = json.loads(i.get('brandWords'))
if i.get('comWords'):
i['comWords'] = json.loads(i.get('comWords'))
if i.get('keywords'):
i['keywords'] = json.loads(i.get('keywords'))
if i.get('productWordsMap'):
i['productWordsMap'] = json.loads(i.get('productWordsMap'))
return deepseek_android_process_original_data(i)
if data_list:
for i in data_list:
try:
handle_item(i)
except Exception as e:
...
......@@ -343,7 +343,7 @@ if __name__ == '__main__':
# file_path = 'geo/c7eb465e-f385-4aa2-89c4-a7cf11897f45/KIMI/1(1).txt'
data_list = bh_utils.query_data(
f"select * from geo_commit_task where taskId = '79ac3438-a362-4eaa-b954-070791ba634b' and platform = 'DOUBA'")
f"select * from geo_commit_task where taskId = '3f53b599-3710-4312-9b50-73f07bdba631' and platform = 'DOUBA'")
......@@ -352,7 +352,6 @@ if __name__ == '__main__':
# # # # #
def handle_item(i):
task_id = i.get('taskId')
logger.success(f"{task_id}处理完成")
if i.get('comWordsMap'):
i['comWordsMap'] = json.loads(i.get('comWordsMap'))
if i.get('brandWords'):
......
......@@ -120,6 +120,7 @@ def save_eco_data_to_bh(data,eco_type,eco_list):
if platform == 'TXYBA':
if eco_type == 'jdeco':
eco_result =yuanbao_android_process_jd_eco(data,eco_list)
bh_utils.insert_data('geo_eco_data',eco_result)
......@@ -1598,8 +1598,14 @@ def result_v2(response_content, data):
if sentiment_result:
result['sentiment'] = sentiment_result
if 'render_ecom_card_widget_' in response_content:
result['hasGoods'] = 1
ecom_markers = (
"render_ecom_card_widget_taobao_start",
"render_ecom_card_widget_damai_start",
"render_ecom_card_widget_product_start",
"render_ecom_card_widget_jd_start",
)
result["hasGoods"] = int(any(marker in response_content for marker in ecom_markers))
# ---------------------------------结果整合-----------------------------
# ---------------------------------上传结果-----------------------------
......@@ -2003,10 +2009,10 @@ if __name__ == '__main__':
#
# data_list = bh_utils.query_data(f"select * from geo_commit_task where reqId in ({req_id_sql}) ")
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 platform = 'DPA' and thinking_enabled = 1 and insertime > 1782021666 order by insertime desc")
# data_list = bh_utils.query_data("select * from geo_commit_task where pt = '20260720' and platform = 'TYQW' and type = 'success' ")
def handle_item(i):
i["comWordsMap"] = safe_json_loads(i.get("comWordsMap"), [])
i["brandWords"] = safe_json_loads(i.get("brandWords"), [])
i["comWords"] = safe_json_loads(i.get("comWords"), [])
......@@ -2016,7 +2022,8 @@ if __name__ == '__main__':
# type_t = 'batch'
# commit_task(i,'ING')
# return task_send_queue(i,type_t)
return platform_process(i)
return deepseek_android_data_process.deepseek_android_process_original_data(i)
# return platform_process(i)
#
if data_list:
with ThreadPoolExecutor(max_workers=50) as executor:
......
import json
import traceback
from aidso_geo.models import spider_save_tos
from aidso_geo.models.eco_data_process import save_eco_data_to_bh
from aidso_geo.utils import robot_utils, bh_utils
......@@ -372,7 +374,6 @@ def qianwen_android_process_original_data(task_data):
suggestions, rich_media_block)
return (file_path, search_keyword, url_list, think_content, response_content, suggestions)
except Exception as e:
parts = file_path.split('/')
platform = parts[2]
task_id = parts[1]
......@@ -407,7 +408,7 @@ if __name__ == '__main__':
# 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 = '9dfd84a4-f551-4d74-b1ee-9367aed53a8c' and platform = 'TYQWA'")
data_list = bh_utils.query_data(f"select * from geo_commit_task where taskId = 'b347cfe7-0f74-47c4-8328-3c92b9cad1ea' and platform = 'TYQWA'")
def handle_item(i):
......
......@@ -52,6 +52,7 @@ def qianwen_process_original_data(data):
try:
if isinstance(json.loads(pluginResult), list):
if len(json.loads(pluginResult))>=2:
url_list = json.loads(pluginResult)[1].get(
'search_results')
if isinstance(json.loads(pluginResult), dict):
......@@ -85,7 +86,9 @@ def qianwen_process_original_data(data):
think_content = mu.get('content').get('think_content')
if json_data.get("data").get('messages'):
messages = json_data.get("data").get('messages')
for ms in messages:
if ms.get('mime_type') =='multi_load/iframe' and ms.get('status') == 'complete':
......@@ -103,11 +106,29 @@ def qianwen_process_original_data(data):
if mu.get('type') == 'ref_source_inline':
mu_content = mu.get('content')
if mu_content:
if mu_content.get('query_list'):
search_keyword.extend(mu_content.get('query_list'))
if mu_content.get('list'):
url_list_batch.extend(mu_content.get('list'))
if mu.get('type') == 'source_group_web':
mu_content = mu.get('content')
mu_source_seq = mu.get('source_seq')
if mu_content.get('list'):
mu_content_list = mu_content.get('list')
for mu_list in mu_content_list:
if mu_list.get('type') == 'source':
mu_list_list = (mu_list.get('content').get('list'))
for mu_list_l in mu_list_list:
...
# 处理引用文章
# print(mu_list_l)
# print(mu_source_seq)
# print(mu_source_seq)
# print('----')
# print('----')
if mu.get('type') == 'video_note_list':
rich_media_block.append(
{
......@@ -119,6 +140,7 @@ def qianwen_process_original_data(data):
if ms.get('mime_type') =='bar/iframe' and ms.get('status') == 'complete':
if ms.get('meta_data').get('sources'):
url_list_batch = ms.get('meta_data').get('sources')[0].get('content').get('list')
# print(ms)
if ms.get('mime_type') =='paa/iframe' and ms.get('status') == 'complete':
paas = ms.get('meta_data').get('paas')
if paas:
......@@ -137,11 +159,11 @@ def qianwen_process_original_data(data):
"time": url.get('publish_time', ''),
}
)
spider_save_tos.process_and_save_files(file_path, search_keyword, url_list, think_content, response_content,
suggestions,rich_media_block)
return (file_path, search_keyword, url_list, think_content, response_content, suggestions)
except Exception as e:
traceback.print_exc()
parts = file_path.split('/')
platform = parts[2]
task_id = parts[1]
......@@ -173,7 +195,7 @@ if __name__ == '__main__':
# # file_path3 = 'geo/51a7ee04-711c-4cf0-9d4c-4b523fba7037/TYQW/original.text'
# qianwen_process_original_data(file_path2)
# for i in task_id:
data_list = bh_utils.query_data(f"select * from geo_commit_task where taskId = '3e317dd8-2512-476c-a31a-104c0bcaca75' and platform = 'TYQW'")
data_list = bh_utils.query_data(f"select * from geo_commit_task where taskId = '13e740b9-955c-4f9b-a03e-92e656ffaf43' and platform = 'TYQW'")
# # #
# # #
......
......@@ -79,7 +79,7 @@ def yuanbao_process_original_data(data):
return (file_path, search_keyword, url_list, think_content, response_content, suggestions)
if __name__ == '__main__':
data_list = bh_utils.query_data(f"select * from geo_commit_task where taskId = '30fde623-70a3-4ca7-86fb-393b60841402' and platform = 'TXYB'")
data_list = bh_utils.query_data(f"select * from geo_commit_task where taskId = '9dfd84a4-f551-4d74-b1ee-9367aed53a8c' and platform = 'TXYB'")
# # #
# # #
......
......@@ -328,8 +328,8 @@ def get_yuanbao_message(promp, think, max_retry=3):
data=payload.encode("utf-8"),
timeout=300
)
response.raise_for_status()
json_response = response.json()
......@@ -502,5 +502,5 @@ def get_parse_sse_result(platform, task_id):
if __name__ == '__main__':
print(get_deepseek_message("防晒霜推荐",1))
print(get_yuanbao_message("防晒霜推荐",'0'))
# print(get_doubao_message("防晒霜推荐","disabled"))
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