Commit aba7f88c authored by zhouwei's avatar zhouwei

Upload New File

parent ac430824
app:
description: 自定义节点翻译
icon: ✉️
icon_background: '#E0F2FE'
mode: workflow
name: JSON翻译-自定义节点-火山DP.V3
use_icon_as_answer_icon: false
dependencies: []
kind: app
version: 0.1.5
workflow:
conversation_variables: []
environment_variables: []
features:
file_upload:
allowed_file_extensions:
- .JPG
- .JPEG
- .PNG
- .GIF
- .WEBP
- .SVG
allowed_file_types:
- image
allowed_file_upload_methods:
- local_file
- remote_url
enabled: false
fileUploadConfig:
audio_file_size_limit: 50
batch_count_limit: 5
file_size_limit: 15
image_file_size_limit: 10
video_file_size_limit: 100
workflow_file_upload_limit: 10
image:
enabled: false
number_limits: 3
transfer_methods:
- local_file
- remote_url
number_limits: 3
opening_statement: ''
retriever_resource:
enabled: false
sensitive_word_avoidance:
enabled: false
speech_to_text:
enabled: false
suggested_questions: []
suggested_questions_after_answer:
enabled: false
text_to_speech:
enabled: false
language: ''
voice: ''
graph:
edges:
- data:
isInIteration: false
sourceType: code
targetType: end
id: 1727242813814-source-1727235861736-target
source: '1727242813814'
sourceHandle: source
target: '1727235861736'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
sourceType: start
targetType: code
id: 1727233123593-source-1727242813814-target
source: '1727233123593'
sourceHandle: source
target: '1727242813814'
targetHandle: target
type: custom
zIndex: 0
nodes:
- data:
desc: "{\n \"msg_info\": \"DeryckWhibley坚称他'不是骗子',前经理否认了性胁迫指控\",\n \"sys.files\"\
: [],\n \"sys.user_id\": \"sl_backend_twitter\"\n}"
selected: false
title: 开始
type: start
variables:
- label: record_json
max_length: 2000
options: []
required: true
type: paragraph
variable: record_json
- label: language
max_length: 48
options: []
required: true
type: text-input
variable: language
height: 223
id: '1727233123593'
position:
x: -105.5169855696115
y: 291.69166477189617
positionAbsolute:
x: -105.5169855696115
y: 291.69166477189617
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 243
- data:
desc: ''
outputs:
- value_selector:
- '1727242813814'
- result
variable: result
selected: false
title: 结束
type: end
height: 89
id: '1727235861736'
position:
x: 835.563046011431
y: 300.9114449432623
positionAbsolute:
x: 835.563046011431
y: 300.9114449432623
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 243
- data:
code: "import json\nfrom typing import List, Dict, Optional\n\nimport requests\n\
\n# Constants\nDEEP_SEEK_URL = \"https://ark.cn-beijing.volces.com/api/v3/chat/completions\"\
\n\n\nclass DeepSeekAIService:\n def __init__(self, api_translate_key:\
\ str):\n self.api_translate_key = api_translate_key\n\n def translate(self,\
\ translate_dto: Dict) -> Optional[Dict]:\n chat_input_data = {\n\
\ \"model\": \"deepseek-v3-250324\",\n \"stream\"\
: False,\n \"messages\": []\n }\n self._build_translate(chat_input_data,\
\ translate_dto)\n chat_completion_response = self._ai_request(chat_input_data)\n\
\n if chat_completion_response.get(\"choices\"):\n return\
\ {\n \"answer\": chat_completion_response[\"choices\"][0][\"\
message\"][\"content\"]\n }\n return None\n\n def news_tags(self,\
\ translate_dto: Dict) -> Optional[Dict]:\n chat_input_data = {\n\
\ \"model\": \"deepseek-v3-250324\",\n \"stream\"\
: False,\n \"messages\": []\n }\n self._build_news_tag(chat_input_data,\
\ translate_dto)\n chat_completion_response = self._ai_request(chat_input_data)\n\
\n if chat_completion_response.get(\"choices\"):\n return\
\ {\n \"answer\": chat_completion_response[\"choices\"][0][\"\
message\"][\"content\"]\n }\n return None\n\n def _build_news_tag(self,\
\ chat_input_data: Dict, translate_dto: Dict) -> None:\n system_message\
\ = self._get_system_tag_deep_seek_message()\n user_message = self._get_user_tag_deep_seek_message(translate_dto)\n\
\ chat_input_data[\"messages\"].extend([system_message, user_message])\n\
\n def _ai_request(self, chat_input_data: Dict) -> Dict:\n json_data\
\ = json.dumps(chat_input_data, ensure_ascii=False)\n headers = self._get_headers(self.api_translate_key)\n\
\ response = requests.post(\n DEEP_SEEK_URL,\n \
\ headers=headers,\n json=chat_input_data,\n timeout=(3,\
\ 100)\n )\n\n if response.status_code == 200:\n \
\ return response.json()\n raise Exception(\"Translation error\"\
)\n\n def _build_translate(self, chat_input_data: Dict, translate_dto:\
\ Dict) -> None:\n system_message = self._get_deep_seek_message(translate_dto)\n\
\ chat_input_data[\"messages\"].append(system_message)\n\n @staticmethod\n\
\ def _get_deep_seek_message(translate_dto: Dict) -> Dict:\n content\
\ = (\n f\"需要翻译的JSON:{translate_dto['inputs']['record_json']}\\\
n\\n\"\n f\"你是一个 JSON 翻译员,能够将给定的 JSON 中的 value 值部分翻译成 `{translate_dto['inputs']['language']}`。\\\
n\\n\"\n \"## 限制\\n\"\n \"- 严格按照要求进行翻译,不改变 JSON 的结构和无意义的\
\ key value。\\n\"\n \"- 仅翻译有意义的 value 部分,确保翻译准确、通顺。\"\n \
\ \"- 无需任何其他说明。\"\n \"- 数字、特殊符号(@#%&等)连接的单词无需翻译,其他还需翻译。\"\
\n )\n return {\"role\": \"user\", \"content\": content}\n\
\n @staticmethod\n def _get_user_tag_deep_seek_message(translate_dto:\
\ Dict) -> Dict:\n return {\"role\": \"user\", \"content\": translate_dto[\"\
inputs\"][\"record_json\"]}\n\n @staticmethod\n def _get_system_tag_deep_seek_message()\
\ -> Dict:\n content = (\n \"```xml\\n\"\n \
\ \"<instruction>\\n\"\n \"对多条新闻内容进行打标签,标签分别为枪击、抢劫、爆炸、恐怖袭击、纵火、大规模伤亡事件、人质事件、毒气泄漏、自然灾害、生物危害、交通意外、建筑物倒塌、食品安全、社会冲突、群体性事件等。请按照以下步骤完成任务:\\\
n\"\n \"\\n\"\n \"1. 仔细阅读每条新闻内容,理解其核心事件。\\n\"\n \
\ \"2. 根据新闻描述的事件类型,从给定的标签列表中选择最匹配的一个或多个标签。\\n\"\n \"\
3. 确保标签与新闻内容高度相关,避免主观臆断。\\n\"\n \"4. 如果新闻内容涉及多个事件类型,可以分配多个标签,但需确保每个标签都准确反映新闻内容。\\\
n\"\n \"5. 输出结果时,仅列出标签名称,不要包含任何XML标签或其他无关内容。\\n\"\n \
\ \"\\n\"\n \"<examples>\\n\"\n \"<example>\\n\"\
\n \"<输入>\\n\"\n \"\\\"昨日凌晨,某市一家银行发生持枪抢劫案,歹徒与警方交火后逃离现场,造成两名保安受伤。\\\
\"\\n\"\n \"<输出>\\n\"\n \"枪击, 抢劫\\n\"\n \
\ \"</example>\\n\"\n \"\\n\"\n \"<example>\\n\"\n\
\ \"<输入>\\n\"\n \"\\\"今日上午,某化工厂发生毒气泄漏事故,附近居民已被紧急疏散,暂无人员伤亡报告。\\\
\"\\n\"\n \"<输出>\\n\"\n \"毒气泄漏\\n\"\n \"\
</example>\\n\"\n \"\\n\"\n \"<example>\\n\"\n \
\ \"<输入>\\n\"\n \"\\\"近日,某地因征地问题引发大规模抗议活动,数百名民众与警方发生冲突,导致多人受伤。\\\
\"\\n\"\n \"<输出>\\n\"\n \"社会冲突, 群体性事件\\n\"\n \
\ \"</example>\\n\"\n \"</examples>\\n\"\n \"\
\\n\"\n \"注意事项:\\n\"\n \"- 标签必须严格从给定的列表中选择,不得自行添加或修改标签名称。\\\
n\"\n \"- 如果新闻内容与任何标签都不匹配,则输出\\\"\\\"\\n\"\n \"-\
\ 输出时标签之间用逗号分隔,不要使用编号或项目符号。\\n\"\n \"- 确保标签的准确性和一致性,避免歧义或模糊分类。\\\
n\"\n \"\\n\"\n \"请严格按照上述要求完成任务,确保输出结果简洁、准确且符合规范。\\\
n\"\n \"</instruction>\\n\"\n \"```\"\n )\n\
\ return {\"role\": \"system\", \"content\": content}\n\n @staticmethod\n\
\ def _get_headers(token: str) -> Dict[str, str]:\n return {\n\
\ \"Content-Type\": \"application/json\",\n \"Authorization\"\
: f\"Bearer {token}\"\n }\n\n\ndef main(record_json: str, language:\
\ str) -> dict:\n service = DeepSeekAIService(api_translate_key=\"b02a03e9-2bf9-467e-9cc0-5b94c80e2c79\"\
)\n\n # Example translation\n translate_dto = {\n \"inputs\"\
: {\n \"record_json\":record_json ,\n \"language\"\
: language\n }\n }\n result = service.translate(translate_dto)\n\
\ json_data = json.dumps(result, ensure_ascii=False)\n return {\"\
result\":result}"
code_language: python3
desc: ''
outputs:
result:
children: null
type: object
selected: true
title: KnResult2Obj
type: code
variables:
- value_selector:
- '1727233123593'
- record_json
variable: record_json
- value_selector:
- '1727233123593'
- language
variable: language
height: 53
id: '1727242813814'
position:
x: 313.7392513312235
y: 315.98770119587266
positionAbsolute:
x: 313.7392513312235
y: 315.98770119587266
selected: true
sourcePosition: right
targetPosition: left
type: custom
width: 243
viewport:
x: 283.817091622728
y: 107.90883079347005
zoom: 0.519265922368533
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