2024-08-14AI发布Shopify博文(简化版)和源码

本流程通过最简化方式来发布shopify的blog posts,相关参数说明:

1,store_domain:xxx.myshopify.com

2,blogId:填入博客集的id,即后台管理地址/articles内的文章集

3,author:显示发布作者

4,access_token:需要在后台管理地址settings/apps/development中手动创建App development开发者app,并且授予权限”write_content, read_content”

流程源码:

{
“nodes”: [
{
“nodeId”: “userGuide”,
“name”: “系统配置”,
“intro”: “可以配置应用的系统参数”,
“avatar”: “core/workflow/template/systemConfig”,
“flowNodeType”: “userGuide”,
“position”: {
“x”: -350.58541024644524,
“y”: -782.9771795426398
},
“version”: “481”,
“inputs”: [
{
“key”: “welcomeText”,
“renderTypeList”: [
“hidden”
],
“valueType”: “string”,
“label”: “core.app.Welcome Text”,
“value”: “”
},
{
“key”: “variables”,
“renderTypeList”: [
“hidden”
],
“valueType”: “any”,
“label”: “core.app.Chat Variable”,
“value”: []
},
{
“key”: “questionGuide”,
“valueType”: “boolean”,
“renderTypeList”: [
“hidden”
],
“label”: “core.app.Question Guide”,
“value”: false
},
{
“key”: “tts”,
“renderTypeList”: [
“hidden”
],
“valueType”: “any”,
“label”: “”,
“value”: {
“type”: “web”
}
},
{
“key”: “whisper”,
“renderTypeList”: [
“hidden”
],
“valueType”: “any”,
“label”: “”,
“value”: {
“open”: false,
“autoSend”: false,
“autoTTSResponse”: false
}
},
{
“key”: “scheduleTrigger”,
“renderTypeList”: [
“hidden”
],
“valueType”: “any”,
“label”: “”,
“value”: null
}
],
“outputs”: []
},
{
“nodeId”: “448745”,
“name”: “流程开始”,
“intro”: “”,
“avatar”: “core/workflow/template/workflowStart”,
“flowNodeType”: “workflowStart”,
“position”: {
“x”: -623.9508693032587,
“y”: -127.63244057243791
},
“version”: “481”,
“inputs”: [
{
“key”: “userChatInput”,
“renderTypeList”: [
“reference”,
“textarea”
],
“valueType”: “string”,
“label”: “用户问题”,
“required”: true,
“toolDescription”: “用户问题”
}
],
“outputs”: [
{
“id”: “userChatInput”,
“key”: “userChatInput”,
“label”: “common:core.module.input.label.user question”,
“type”: “static”,
“valueType”: “string”
}
]
},
{
“nodeId”: “loOvhld2ZTKa”,
“name”: “AI 对话”,
“intro”: “AI 大模型对话”,
“avatar”: “core/workflow/template/aiChat”,
“flowNodeType”: “chatNode”,
“showStatus”: true,
“position”: {
“x”: 175.84130939135946,
“y”: -210.10187145884657
},
“version”: “481”,
“inputs”: [
{
“key”: “model”,
“renderTypeList”: [
“settingLLMModel”,
“reference”
],
“label”: “core.module.input.label.aiModel”,
“valueType”: “string”,
“value”: “gpt-4o-lite”
},
{
“key”: “temperature”,
“renderTypeList”: [
“hidden”
],
“label”: “”,
“value”: 0,
“valueType”: “number”,
“min”: 0,
“max”: 10,
“step”: 1
},
{
“key”: “maxToken”,
“renderTypeList”: [
“hidden”
],
“label”: “”,
“value”: 2000,
“valueType”: “number”,
“min”: 100,
“max”: 4000,
“step”: 50
},
{
“key”: “isResponseAnswerText”,
“renderTypeList”: [
“hidden”
],
“label”: “”,
“value”: false,
“valueType”: “boolean”
},
{
“key”: “quoteTemplate”,
“renderTypeList”: [
“hidden”
],
“label”: “”,
“valueType”: “string”
},
{
“key”: “quotePrompt”,
“renderTypeList”: [
“hidden”
],
“label”: “”,
“valueType”: “string”
},
{
“key”: “aiChatVision”,
“renderTypeList”: [
“hidden”
],
“label”: “”,
“valueType”: “boolean”,
“value”: true
},
{
“key”: “systemPrompt”,
“renderTypeList”: [
“textarea”,
“reference”
],
“max”: 3000,
“valueType”: “string”,
“label”: “core.ai.Prompt”,
“description”: “core.app.tip.chatNodeSystemPromptTip”,
“placeholder”: “core.app.tip.chatNodeSystemPromptTip”,
“value”: “请生成关于用户问题的文章,并且输出如下json格式的数据,里面包含标题,作者,和html的内容。\n\n{\n \”article\”: {\n \”title\”: \”{{title}}\”,\n \”author\”: \”{{author}}\”,\n \”body_html\”: \”{{body_html}}\”\n }\n}\n”
},
{
“key”: “history”,
“renderTypeList”: [
“numberInput”,
“reference”
],
“valueType”: “chatHistory”,
“label”: “core.module.input.label.chat history”,
“required”: true,
“min”: 0,
“max”: 50,
“value”: 6,
“description”: “最多携带多少轮对话记录”
},
{
“key”: “quoteQA”,
“renderTypeList”: [
“settingDatasetQuotePrompt”
],
“label”: “”,
“debugLabel”: “知识库引用”,
“description”: “”,
“valueType”: “datasetQuote”
},
{
“key”: “stringQuoteText”,
“renderTypeList”: [
“reference”,
“textarea”
],
“label”: “app:document_quote”,
“debugLabel”: “app:document_quote”,
“description”: “app:document_quote_tip”,
“valueType”: “string”
},
{
“key”: “userChatInput”,
“renderTypeList”: [
“reference”,
“textarea”
],
“valueType”: “string”,
“label”: “用户问题”,
“required”: true,
“toolDescription”: “用户问题”,
“value”: [
“448745”,
“userChatInput”
]
}
],
“outputs”: [
{
“id”: “history”,
“key”: “history”,
“required”: true,
“label”: “core.module.output.label.New context”,
“description”: “core.module.output.description.New context”,
“valueType”: “chatHistory”,
“type”: “static”
},
{
“id”: “answerText”,
“key”: “answerText”,
“required”: true,
“label”: “core.module.output.label.Ai response content”,
“description”: “core.module.output.description.Ai response content”,
“valueType”: “string”,
“type”: “static”
}
]
},
{
“nodeId”: “y2Q1VRJEVfw8”,
“name”: “指定回复”,
“intro”: “该模块可以直接回复一段指定的内容。常用于引导、提示。非字符串内容传入时,会转成字符串进行输出。”,
“avatar”: “core/workflow/template/reply”,
“flowNodeType”: “answerNode”,
“position”: {
“x”: 2304.7831044589634,
“y”: -2.158998296318117
},
“version”: “481”,
“inputs”: [
{
“key”: “text”,
“renderTypeList”: [
“textarea”,
“reference”
],
“valueType”: “any”,
“required”: true,
“label”: “core.module.input.label.Response content”,
“description”: “core.module.input.description.Response content”,
“placeholder”: “core.module.input.description.Response content”,
“selectedTypeIndex”: 1,
“value”: [
“j9VaQjKD5hmd”,
“system_rawResponse”
]
}
],
“outputs”: []
},
{
“nodeId”: “wB7CEDF2wWjP”,
“name”: “HTTP 请求”,
“intro”: “可以发出一个 HTTP 请求,实现更为复杂的操作(联网搜索、数据库查询等)”,
“avatar”: “core/workflow/template/httpRequest”,
“flowNodeType”: “httpRequest468”,
“showStatus”: true,
“position”: {
“x”: 1270.597736164629,
“y”: -359.3232672600758
},
“version”: “481”,
“inputs”: [
{
“key”: “system_addInputParam”,
“renderTypeList”: [
“addInputParam”
],
“valueType”: “dynamic”,
“label”: “”,
“required”: false,
“description”: “core.module.input.description.HTTP Dynamic Input”,
“customInputConfig”: {
“selectValueTypeList”: [
“string”,
“number”,
“boolean”,
“object”,
“arrayString”,
“arrayNumber”,
“arrayBoolean”,
“arrayObject”,
“any”,
“chatHistory”,
“datasetQuote”,
“dynamic”,
“selectApp”,
“selectDataset”
],
“showDescription”: false,
“showDefaultValue”: true
}
},
{
“key”: “system_httpMethod”,
“renderTypeList”: [
“custom”
],
“valueType”: “string”,
“label”: “”,
“value”: “POST”,
“required”: true
},
{
“key”: “system_httpReqUrl”,
“renderTypeList”: [
“hidden”
],
“valueType”: “string”,
“label”: “”,
“description”: “core.module.input.description.Http Request Url”,
“placeholder”: “https://api.ai.com/getInventory”,
“required”: false,
“value”: “https://{{store_domain}}/admin/api/unstable/blogs/{{blogId}}/articles.json”
},
{
“key”: “system_httpHeader”,
“renderTypeList”: [
“custom”
],
“valueType”: “any”,
“value”: [
{
“key”: “Content-Type”,
“type”: “string”,
“value”: “application/json”
},
{
“key”: “X-Shopify-Access-Token”,
“type”: “string”,
“value”: “{{access_token}}”
}
],
“label”: “”,
“description”: “core.module.input.description.Http Request Header”,
“placeholder”: “core.module.input.description.Http Request Header”,
“required”: false
},
{
“key”: “system_httpParams”,
“renderTypeList”: [
“hidden”
],
“valueType”: “any”,
“value”: [],
“label”: “”,
“required”: false
},
{
“key”: “system_httpJsonBody”,
“renderTypeList”: [
“hidden”
],
“valueType”: “any”,
“value”: “{\r\n \”article\”: {\r\n \”title\”: \”{{title}}\”,\r\n \”author\”: \”{{author}}\”,\r\n \”body_html\”: \”{{body_html}}\”\r\n }\r\n}\r\n”,
“label”: “”,
“required”: false
},
{
“renderTypeList”: [
“reference”
],
“valueType”: “string”,
“canEdit”: true,
“key”: “store_domain”,
“label”: “store_domain”,
“customInputConfig”: {
“selectValueTypeList”: [
“string”,
“number”,
“boolean”,
“object”,
“arrayString”,
“arrayNumber”,
“arrayBoolean”,
“arrayObject”,
“any”,
“chatHistory”,
“datasetQuote”,
“dynamic”,
“selectApp”,
“selectDataset”
],
“showDescription”: false,
“showDefaultValue”: true
},
“required”: true,
“value”: [
“VARIABLE_NODE_ID”,
“store_domain”
]
},
{
“renderTypeList”: [
“reference”
],
“valueType”: “string”,
“canEdit”: true,
“key”: “access_token”,
“label”: “access_token”,
“customInputConfig”: {
“selectValueTypeList”: [
“string”,
“number”,
“boolean”,
“object”,
“arrayString”,
“arrayNumber”,
“arrayBoolean”,
“arrayObject”,
“any”,
“chatHistory”,
“datasetQuote”,
“dynamic”,
“selectApp”,
“selectDataset”
],
“showDescription”: false,
“showDefaultValue”: true
},
“required”: true,
“value”: [
“VARIABLE_NODE_ID”,
“access_token”
]
},
{
“renderTypeList”: [
“reference”
],
“valueType”: “string”,
“canEdit”: true,
“key”: “blogId”,
“label”: “blogId”,
“customInputConfig”: {
“selectValueTypeList”: [
“string”,
“number”,
“boolean”,
“object”,
“arrayString”,
“arrayNumber”,
“arrayBoolean”,
“arrayObject”,
“any”,
“chatHistory”,
“datasetQuote”,
“dynamic”,
“selectApp”,
“selectDataset”
],
“showDescription”: false,
“showDefaultValue”: true
},
“required”: true,
“value”: [
“VARIABLE_NODE_ID”,
“blogId”
]
},
{
“renderTypeList”: [
“reference”
],
“valueType”: “string”,
“canEdit”: true,
“key”: “author”,
“label”: “author”,
“customInputConfig”: {
“selectValueTypeList”: [
“string”,
“number”,
“boolean”,
“object”,
“arrayString”,
“arrayNumber”,
“arrayBoolean”,
“arrayObject”,
“any”,
“chatHistory”,
“datasetQuote”,
“dynamic”,
“selectApp”,
“selectDataset”
],
“showDescription”: false,
“showDefaultValue”: true
},
“required”: true,
“value”: [
“VARIABLE_NODE_ID”,
“author”
]
},
{
“renderTypeList”: [
“reference”
],
“valueType”: “string”,
“canEdit”: true,
“key”: “title”,
“label”: “title”,
“customInputConfig”: {
“selectValueTypeList”: [
“string”,
“number”,
“boolean”,
“object”,
“arrayString”,
“arrayNumber”,
“arrayBoolean”,
“arrayObject”,
“any”,
“chatHistory”,
“datasetQuote”,
“dynamic”,
“selectApp”,
“selectDataset”
],
“showDescription”: false,
“showDefaultValue”: true
},
“required”: true,
“value”: [
“l9pBQCWIMaHw”,
“qLUQfhG0ILRX”
]
},
{
“renderTypeList”: [
“reference”
],
“valueType”: “string”,
“canEdit”: true,
“key”: “body_html”,
“label”: “body_html”,
“customInputConfig”: {
“selectValueTypeList”: [
“string”,
“number”,
“boolean”,
“object”,
“arrayString”,
“arrayNumber”,
“arrayBoolean”,
“arrayObject”,
“any”,
“chatHistory”,
“datasetQuote”,
“dynamic”,
“selectApp”,
“selectDataset”
],
“showDescription”: false,
“showDefaultValue”: true
},
“required”: true,
“value”: [
“l9pBQCWIMaHw”,
“jkHYcVqXouPO”
]
}
],
“outputs”: [
{
“id”: “error”,
“key”: “error”,
“label”: “请求错误”,
“description”: “HTTP请求错误信息,成功时返回空”,
“valueType”: “object”,
“type”: “static”
},
{
“id”: “httpRawResponse”,
“key”: “httpRawResponse”,
“label”: “原始响应”,
“required”: true,
“description”: “HTTP请求的原始响应。只能接受字符串或JSON类型响应数据。”,
“valueType”: “any”,
“type”: “static”
},
{
“id”: “system_addOutputParam”,
“key”: “system_addOutputParam”,
“type”: “dynamic”,
“valueType”: “dynamic”,
“label”: “”,
“customFieldConfig”: {
“selectValueTypeList”: [
“string”,
“number”,
“boolean”,
“object”,
“arrayString”,
“arrayNumber”,
“arrayBoolean”,
“arrayObject”,
“any”,
“chatHistory”,
“datasetQuote”,
“dynamic”,
“selectApp”,
“selectDataset”
],
“showDescription”: false,
“showDefaultValue”: false
}
}
]
},
{
“nodeId”: “j9VaQjKD5hmd”,
“name”: “代码运行”,
“intro”: “执行一段简单的脚本代码,通常用于进行复杂的数据处理。”,
“avatar”: “core/workflow/template/codeRun”,
“flowNodeType”: “code”,
“showStatus”: true,
“position”: {
“x”: 1759.2563846913224,
“y”: -204.36811787035276
},
“version”: “482”,
“inputs”: [
{
“key”: “system_addInputParam”,
“renderTypeList”: [
“addInputParam”
],
“valueType”: “dynamic”,
“label”: “”,
“required”: false,
“description”: “这些变量会作为代码的运行的输入参数”,
“customInputConfig”: {
“selectValueTypeList”: [
“string”,
“number”,
“boolean”,
“object”,
“arrayString”,
“arrayNumber”,
“arrayBoolean”,
“arrayObject”,
“any”,
“chatHistory”,
“datasetQuote”,
“dynamic”,
“selectApp”,
“selectDataset”
],
“showDescription”: false,
“showDefaultValue”: true
}
},
{
“key”: “codeType”,
“renderTypeList”: [
“hidden”
],
“label”: “”,
“value”: “js”
},
{
“key”: “code”,
“renderTypeList”: [
“custom”
],
“label”: “”,
“value”: “function main({data}) {\n // 解析传入的 JSON 数据\n let parsedData;\n try {\n parsedData = JSON.parse(data);\n } catch (error) {\n return {\n error: ‘Invalid JSON format’\n };\n }\n \n // 删除 body_html 字段\n delete parsedData.article.body_html;\n \n // 返回处理后的 JSON 数据\n return parsedData;\n}\n”
},
{
“renderTypeList”: [
“reference”
],
“valueType”: “string”,
“canEdit”: true,
“key”: “data”,
“label”: “data”,
“customInputConfig”: {
“selectValueTypeList”: [
“string”,
“number”,
“boolean”,
“object”,
“arrayString”,
“arrayNumber”,
“arrayBoolean”,
“arrayObject”,
“any”,
“chatHistory”,
“datasetQuote”,
“dynamic”,
“selectApp”,
“selectDataset”
],
“showDescription”: false,
“showDefaultValue”: true
},
“required”: true,
“value”: [
“wB7CEDF2wWjP”,
“httpRawResponse”
]
}
],
“outputs”: [
{
“id”: “system_rawResponse”,
“key”: “system_rawResponse”,
“label”: “完整响应数据”,
“valueType”: “object”,
“type”: “static”
},
{
“id”: “error”,
“key”: “error”,
“label”: “运行错误”,
“description”: “代码运行错误信息,成功时返回空”,
“valueType”: “object”,
“type”: “static”
},
{
“id”: “system_addOutputParam”,
“key”: “system_addOutputParam”,
“type”: “dynamic”,
“valueType”: “dynamic”,
“label”: “”,
“customFieldConfig”: {
“selectValueTypeList”: [
“string”,
“number”,
“boolean”,
“object”,
“arrayString”,
“arrayNumber”,
“arrayBoolean”,
“arrayObject”,
“any”,
“chatHistory”,
“datasetQuote”,
“dynamic”,
“selectApp”,
“selectDataset”
],
“showDescription”: false,
“showDefaultValue”: false
},
“description”: “将代码中 return 的对象作为输出,传递给后续的节点。变量名需要对应 return 的 key”
},
{
“id”: “qLUQfhG0ILRX”,
“type”: “dynamic”,
“key”: “parsedData”,
“valueType”: “string”,
“label”: “parsedData”
}
]
},
{
“nodeId”: “l9pBQCWIMaHw”,
“name”: “json格式化”,
“intro”: “执行一段简单的脚本代码,通常用于进行复杂的数据处理。”,
“avatar”: “core/workflow/template/codeRun”,
“flowNodeType”: “code”,
“showStatus”: true,
“position”: {
“x”: 799.0163883914987,
“y”: -154.3415911975931
},
“version”: “482”,
“inputs”: [
{
“key”: “system_addInputParam”,
“renderTypeList”: [
“addInputParam”
],
“valueType”: “dynamic”,
“label”: “”,
“required”: false,
“description”: “这些变量会作为代码的运行的输入参数”,
“customInputConfig”: {
“selectValueTypeList”: [
“string”,
“number”,
“boolean”,
“object”,
“arrayString”,
“arrayNumber”,
“arrayBoolean”,
“arrayObject”,
“any”,
“chatHistory”,
“datasetQuote”,
“dynamic”,
“selectApp”,
“selectDataset”
],
“showDescription”: false,
“showDefaultValue”: true
}
},
{
“key”: “codeType”,
“renderTypeList”: [
“hidden”
],
“label”: “”,
“value”: “js”
},
{
“key”: “code”,
“renderTypeList”: [
“custom”
],
“label”: “”,
“value”: “function main({data1}) {\n let parsedData;\n \n try {\n // 去除多余的 \\n 并将字符串转换为 JSON 对象\n parsedData = JSON.parse(data1.replace(/\\\\n/g, ”));\n } catch (error) {\n return {\n error: ‘Invalid JSON format’\n };\n }\n \n // 提取 title, author 和 body_html\n const result1 = parsedData.article.title || ”;\n const result2 = parsedData.article.author || ”;\n const result3 = parsedData.article.body_html || ”;\n \n return {\n result1: result1,\n result2: result2,\n result3: result3\n };\n}\n”
},
{
“renderTypeList”: [
“reference”
],
“valueType”: “string”,
“canEdit”: true,
“key”: “data1”,
“label”: “data1”,
“customInputConfig”: {
“selectValueTypeList”: [
“string”,
“number”,
“boolean”,
“object”,
“arrayString”,
“arrayNumber”,
“arrayBoolean”,
“arrayObject”,
“any”,
“chatHistory”,
“datasetQuote”,
“dynamic”,
“selectApp”,
“selectDataset”
],
“showDescription”: false,
“showDefaultValue”: true
},
“required”: true,
“value”: [
“loOvhld2ZTKa”,
“answerText”
]
}
],
“outputs”: [
{
“id”: “system_rawResponse”,
“key”: “system_rawResponse”,
“label”: “完整响应数据”,
“valueType”: “object”,
“type”: “static”
},
{
“id”: “error”,
“key”: “error”,
“label”: “运行错误”,
“description”: “代码运行错误信息,成功时返回空”,
“valueType”: “object”,
“type”: “static”
},
{
“id”: “system_addOutputParam”,
“key”: “system_addOutputParam”,
“type”: “dynamic”,
“valueType”: “dynamic”,
“label”: “”,
“customFieldConfig”: {
“selectValueTypeList”: [
“string”,
“number”,
“boolean”,
“object”,
“arrayString”,
“arrayNumber”,
“arrayBoolean”,
“arrayObject”,
“any”,
“chatHistory”,
“datasetQuote”,
“dynamic”,
“selectApp”,
“selectDataset”
],
“showDescription”: false,
“showDefaultValue”: false
},
“description”: “将代码中 return 的对象作为输出,传递给后续的节点。变量名需要对应 return 的 key”
},
{
“id”: “qLUQfhG0ILRX”,
“type”: “dynamic”,
“key”: “result1”,
“valueType”: “string”,
“label”: “result1”
},
{
“id”: “jWoi6swLrA6Q”,
“valueType”: “string”,
“type”: “dynamic”,
“key”: “result2”,
“label”: “result2”
},
{
“id”: “jkHYcVqXouPO”,
“valueType”: “string”,
“type”: “dynamic”,
“key”: “result3”,
“label”: “result3”
}
]
}
],
“edges”: [
{
“source”: “448745”,
“target”: “loOvhld2ZTKa”,
“sourceHandle”: “448745-source-right”,
“targetHandle”: “loOvhld2ZTKa-target-left”
},
{
“source”: “wB7CEDF2wWjP”,
“target”: “j9VaQjKD5hmd”,
“sourceHandle”: “wB7CEDF2wWjP-source-right”,
“targetHandle”: “j9VaQjKD5hmd-target-left”
},
{
“source”: “j9VaQjKD5hmd”,
“target”: “y2Q1VRJEVfw8”,
“sourceHandle”: “j9VaQjKD5hmd-source-right”,
“targetHandle”: “y2Q1VRJEVfw8-target-left”
},
{
“source”: “loOvhld2ZTKa”,
“target”: “l9pBQCWIMaHw”,
“sourceHandle”: “loOvhld2ZTKa-source-right”,
“targetHandle”: “l9pBQCWIMaHw-target-left”
},
{
“source”: “l9pBQCWIMaHw”,
“target”: “wB7CEDF2wWjP”,
“sourceHandle”: “l9pBQCWIMaHw-source-right”,
“targetHandle”: “wB7CEDF2wWjP-target-left”
}
],
“chatConfig”: {
“variables”: [
{
“id”: “vo21rv”,
“key”: “store_domain”,
“label”: “store_domain”,
“type”: “input”,
“required”: true,
“maxLen”: 50,
“enums”: [
{
“value”: “”
}
]
},
{
“id”: “01bgyb”,
“key”: “blogId”,
“label”: “blogId”,
“type”: “input”,
“required”: true,
“maxLen”: 50,
“enums”: [
{
“value”: “”
}
]
},
{
“id”: “3hvxfi”,
“key”: “author”,
“label”: “author”,
“type”: “input”,
“required”: true,
“maxLen”: 50,
“enums”: [
{
“value”: “”
}
]
},
{
“id”: “5vxmml”,
“key”: “access_token”,
“label”: “access_token”,
“type”: “input”,
“required”: true,
“maxLen”: 50,
“enums”: [
{
“value”: “”
}
]
}
],
“scheduledTriggerConfig”: {
“cronString”: “”,
“timezone”: “Asia/Shanghai”,
“defaultPrompt”: “”
},
“_id”: “66b72b26f6d30ee1d71e68cf”,
“welcomeText”: “本流程通过最简化方式来发布shopify的blog posts,相关参数说明:\n1,store_domain:xxx.myshopify.com\n2,blogId:填入博客集的id,即后台管理地址/articles内的文章集\n3,author:显示发布作者\n4,access_token:需要在后台管理地址settings/apps/development中手动创建App development开发者app,并且授予权限\”write_content, read_content\””
}
}
请登录后发表评论

    没有回复内容