API call outputs are null #16534

Closed
opened 2026-02-21 19:26:32 -05:00 by yindo · 15 comments
Owner

Originally created by @18191518054 on GitHub (Aug 28, 2025).

Self Checks

  • I have read the Contributing Guide and Language Policy.
  • This is only for bug report, if you would like to ask a question, please head to Discussions.
  • I have searched for existing issues search for existing issues, including closed ones.
  • I confirm that I am using English to submit this report, otherwise it will be closed.
  • 【中文用户 & Non English User】请使用英语提交,否则会被关闭 :)
  • Please do not modify this template :) and fill in all the required fields.

Dify version

1.8.0 and 1.3.1

Cloud or Self Hosted

Self Hosted (Docker)

Steps to reproduce

The outputs in the return value of API call chatflow eventstream are null. Interface example:/console/api/installed-apps/{installed_app_id}/chat-messages.api and ADMIN_API_KEY.
But using this method is normal:/console/app/apps/{appid}/advanced chat/workflows/draft/run, API and apikey.

✔️ Expected Behavior

/console/api/installed-apps/{installed_app_id}/chat-messages.api and ADMIN_API_KEY The method calls the interface to return that the outputs and other fields in the eventstream are not null and can be assigned correctly

Actual Behavior

No response

Originally created by @18191518054 on GitHub (Aug 28, 2025). ### Self Checks - [x] I have read the [Contributing Guide](https://github.com/langgenius/dify/blob/main/CONTRIBUTING.md) and [Language Policy](https://github.com/langgenius/dify/issues/1542). - [x] This is only for bug report, if you would like to ask a question, please head to [Discussions](https://github.com/langgenius/dify/discussions/categories/general). - [x] I have searched for existing issues [search for existing issues](https://github.com/langgenius/dify/issues), including closed ones. - [x] I confirm that I am using English to submit this report, otherwise it will be closed. - [x] 【中文用户 & Non English User】请使用英语提交,否则会被关闭 :) - [x] Please do not modify this template :) and fill in all the required fields. ### Dify version 1.8.0 and 1.3.1 ### Cloud or Self Hosted Self Hosted (Docker) ### Steps to reproduce The outputs in the return value of API call chatflow eventstream are null. Interface example:/console/api/installed-apps/{installed_app_id}/chat-messages.api and ADMIN_API_KEY. But using this method is normal:/console/app/apps/{appid}/advanced chat/workflows/draft/run, API and apikey. ### ✔️ Expected Behavior /console/api/installed-apps/{installed_app_id}/chat-messages.api and ADMIN_API_KEY The method calls the interface to return that the outputs and other fields in the eventstream are not null and can be assigned correctly ### ❌ Actual Behavior _No response_
yindo added the 🌚 invalid label 2026-02-21 19:26:32 -05:00
yindo closed this issue 2026-02-21 19:26:32 -05:00
Author
Owner

@dosubot[bot] commented on GitHub (Aug 28, 2025):

The null outputs from the /console/api/installed-apps/{installed_app_id}/chat-messages.api endpoint when using ADMIN_API_KEY are likely due to how authentication and user context are handled. This endpoint relies on Flask's current_user context, which may not be properly set when using ADMIN_API_KEY—resulting in missing user information and thus null outputs. In contrast, the /console/app/apps/{appid}/advanced chat/workflows/draft/run endpoint enforces strict user authentication and permission checks, ensuring a valid user context and correct outputs.

To resolve this, you would need to ensure that the installed-apps endpoint supports ADMIN_API_KEY authentication in a way that populates the user context, or use an endpoint that already enforces proper authentication. Also, double-check that all required input variables are included in your API payload, as missing variables can also cause null outputs, especially in workflows with conditional logic (reference).

If you are using custom models or plugins, make sure the output is mapped correctly to Dify's expected schema, with the actual output text in the message.content field (reference).

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other  Chat with Dosu Join Discord Share on X

@dosubot[bot] commented on GitHub (Aug 28, 2025): <!-- Answer --> The null outputs from the `/console/api/installed-apps/{installed_app_id}/chat-messages.api` endpoint when using `ADMIN_API_KEY` are likely due to how authentication and user context are handled. This endpoint relies on Flask's `current_user` context, which may not be properly set when using `ADMIN_API_KEY`—resulting in missing user information and thus null outputs. In contrast, the `/console/app/apps/{appid}/advanced chat/workflows/draft/run` endpoint enforces strict user authentication and permission checks, ensuring a valid user context and correct outputs. To resolve this, you would need to ensure that the installed-apps endpoint supports `ADMIN_API_KEY` authentication in a way that populates the user context, or use an endpoint that already enforces proper authentication. Also, double-check that all required input variables are included in your API payload, as missing variables can also cause null outputs, especially in workflows with conditional logic [(reference)](https://github.com/langgenius/dify/issues/21638). If you are using custom models or plugins, make sure the output is mapped correctly to Dify's expected schema, with the actual output text in the `message.content` field [(reference)](https://github.com/langgenius/dify-official-plugins/issues/1323). <!-- Dosu Comment Footer --> *To reply, just mention [@dosu](https://go.dosu.dev/dosubot).* --- <sup>How did I do? [Good](https://app.dosu.dev/response-feedback/a6854902-05fe-4147-ab74-0d520961b177?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/a6854902-05fe-4147-ab74-0d520961b177?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/a6854902-05fe-4147-ab74-0d520961b177?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/a6854902-05fe-4147-ab74-0d520961b177?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/a6854902-05fe-4147-ab74-0d520961b177?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/a6854902-05fe-4147-ab74-0d520961b177?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/a6854902-05fe-4147-ab74-0d520961b177?feedback_type=other)</sup>&nbsp;&nbsp;[![Chat with Dosu](https://dosu.dev/dosu-chat-badge.svg)](https://app.dosu.dev/6088a4f4-073a-43f3-b3d4-4f06fb0c05a0/ask?utm_source=github)&nbsp;[![Join Discord](https://img.shields.io/badge/join-5865F2?logo=discord&logoColor=white&label=)](https://go.dosu.dev/discord-bot)&nbsp;[![Share on X](https://img.shields.io/badge/X-share-black)](https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/langgenius/dify/issues/24736)
Author
Owner

@18191518054 commented on GitHub (Aug 28, 2025):

@18191518054 commented on GitHub (Aug 28, 2025): <!-- Failed to upload "Snipaste_2025-08-28_20-53-20.png" --> <!-- Failed to upload "Snipaste_2025-08-28_21-00-17.png" -->
Author
Owner

@crazywoola commented on GitHub (Aug 28, 2025):

Please provide some logs and some screenshots.

@crazywoola commented on GitHub (Aug 28, 2025): Please provide some logs and some screenshots.
Author
Owner

@18191518054 commented on GitHub (Aug 28, 2025):

请提供一些日志和一些屏幕截图。

This is a call to the/console/app/{appid}/advanced chat/workflows/draft/run method, which returns a value for the outputs of the eventstream message:

{"event": "node_finished", "conversation_id": "c0729045-5d88-413a-921a-2200846e6a8c", "message_id": "01a4d6c1-8a7d-4e84-86f5-74e4a030a9eb", "created_at": 1756430300, "task_id": "2f678d53-e1c5-4bf1-8655-efd1d50099c2", "workflow_run_id": "df47ee98-6f33-4124-b3a1-0d38ddd49f73", "data": {"id": "0e9ffde2-692d-4f8c-8575-9a02cbca5ea9", "node_id": "1747043834727", "node_type": "llm", "title": "LLM\u4efb\u52a1\u89c4\u5212", "index": 18, "predecessor_node_id": "1746522555614", "inputs": {}, "process_data": {"model_mode": "chat", "prompts": [{"role": "system", "text": "\u73b0\u5728\u4f60\u4f5c\u4e3a\u6570\u636e\u5206\u6790\u65b9\u6848\u89c4\u5212\u4e13\u5bb6\uff0c\u8bf7\u9996\u5148\u9605\u8bfb\u4e0b\u9762\u7684\u6570\u636e\u53c2\u8003\u4fe1\u606f\uff0c\u6211\u73b0\u5728\u9700\u8981\u5bf9\u4e0b\u9762\u7684\u5177\u4f53\u6570\u636e\u4e2d\u5f97\u51fa\u7684\u5f02\u5e38\u63cf\u8ff0\u8fdb\u884c\u540e\u7eed\u7684\u5f02\u5e38\u5f52\u56e0\u6d1e\u5bdf\u5206\u6790\uff0c\u9700\u8981\u7ed3\u5408\u4e0b\u9762\u63d0\u4f9b\u7684\u6570\u636e\u5206\u6790\u8def\u5f84\u8fdb\u884c\u65b9\u6848\u89c4\u5212\u3002\n\n**\u6570\u636e\u53c2\u8003\u4fe1\u606f**\uff1a\n- \u6570\u636e\u6807\u9898\uff1a2024-08\u81f32025-08\u6bcf\u6708\u5404\u65e5\u671f\u7684\u7f3a\u9677\u6570\u91cf\u6570\u636e\u7edf\u8ba1\n\n- \u53c2\u8003\u7ef4\u5ea6\u5206\u6790\u8def\u5f84\uff1a\n{\"\u533a\u57df\u7c7b\": {\"dims\": [], \"is_support_drill\": true}, \"\u7ec4\u7ec7\u7c7b\": {\"dims\": [\"\u73ed\u6b21\"], \"is_support_drill\": true}, \"\u8bbe\u5907\u7c7b\": {\"dims\": [\"\u8bbe\u5907\u540d\u79f0\"], \"is_support_drill\": false}, \"\u7f3a\u9677\u7c7b\u522b\u7c7b\": {\"dims\": [\"\u7f3a\u9677\u7c7b\u578b\"], \"is_support_drill\": false}}\n\n\u6ce8\u610f\uff1ais_support_drill\u4e3atrue\u7684\u7ef4\u5ea6\u5217\u8868dims\u4e2d\u9700\u8981\u9010\u5c42\u4e0b\u94bb\u5206\u6790\n\n**\u8f93\u51fa\u683c\u5f0f\u8981\u6c42**\uff1a\u53ef\u88abPython\u4e2d\u7684json.loads()\u89e3\u6790\n```json\n{\n\t\"result\": \n\t\t[\n\t\t\t\"\u4f9d\u6b21\u6309\u7167XX\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ecX1\u3001X2\u3001X3\u7b49\", # is_support_drill\u4e3atrue\u7684XX\u7ef4\u5ea6\u7c7b\u63cf\u8ff0\n\t\t\t\"\u4f9d\u6b21\u6309\u7167YY\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ecY1\u3001Y2\u3001Y3\u7b49\", # is_support_drill\u4e3atrue\u7684YY\u7ef4\u5ea6\u7c7b\u63cf\u8ff0\n\t\t\t...\n\t\t\t\"\u5176\u4ed6\u53ef\u7ec4\u5408\u5206\u6790\u7684\u7ef4\u5ea6: Q1,Q2,Q3\",\n\t\t]\n}\n```\n\n**\u91cd\u8981\u63d0\u793a**\uff1a\n1. \u65b9\u6848\u524dN\u6b65\u5fc5\u987b\u6839\u636e\u53c2\u8003\u7ef4\u5ea6\u8def\u5f84\u4e2dis_support_drill\u4e3atrue\u7684\u8fdb\u884c\u751f\u6210\uff1b\n2. \u7ec4\u5408\u7ef4\u5ea6\u662f\u6307\u524dN\u9879\u7684\u5206\u6790\u7ed3\u679c\u8fdb\u4e00\u6b65\u7ed3\u5408\u201c\u540e\u7eed\u7ec4\u5408\u7c7b\u201d\u4e2d\u7684\u7ef4\u5ea6\uff1b\n3. \u5217\u4e3e\u5b8c\u53ef\u4e0b\u94bb\u7ef4\u5ea6\u5206\u6790\u540e\uff0c\u6700\u540e\u4e00\u6b65\u4ec5\u5217\u4e3e\u5176\u4ed6\u53ef\u7ec4\u5408\u5206\u6790\u7684\u7ef4\u5ea6\uff0c\u4e0d\u8d85\u8fc73\u4e2a\uff08\u4ec5\u5217\u4e3e\u7ef4\u5ea6\u540d+\u7b80\u5355\u63cf\u8ff0\uff09\uff1b\n4. \u4e0d\u8981\u589e\u52a0\u5176\u4ed6\u7684\u89e3\u91ca\u8bf4\u660e\uff0c\u65b9\u6848\u8bf4\u660e\u3001\u4e3e\u4f8b\u7b49\u63cf\u8ff0\u4fe1\u606f", "files": []}], "usage": {"prompt_tokens": 686, "prompt_unit_price": "0.004", "prompt_price_unit": "0.001", "prompt_price": "0.002744", "completion_tokens": 84, "completion_unit_price": "0.012", "completion_price_unit": "0.001", "completion_price": "0.001008", "total_tokens": 770, "total_price": "0.003752", "currency": "RMB", "latency": 1.7982880361378193}, "finish_reason": "stop", "model_provider": "langgenius/tongyi/tongyi", "model_name": "qwen3-235b-a22b"}, "outputs": {"text": "{\n\t\"result\": [\n\t\t\"\u4f9d\u6b21\u6309\u7167\u533a\u57df\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ec\u7701\u3001\u5e02\u3001\u533a\u7b49\",\n\t\t\"\u4f9d\u6b21\u6309\u7167\u7ec4\u7ec7\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ec\u73ed\u6b21\u3001\u73ed\u7ec4\u3001\u4eba\u5458\u7b49\",\n\t\t\"\u5176\u4ed6\u53ef\u7ec4\u5408\u5206\u6790\u7684\u7ef4\u5ea6: \u8bbe\u5907\u540d\u79f0\uff08\u8bbe\u5907\u7c7b\uff09\u3001\u7f3a\u9677\u7c7b\u578b\uff08\u7f3a\u9677\u7c7b\u522b\u7c7b\uff09\"\n\t]\n}", "usage": {"prompt_tokens": 686, "prompt_unit_price": "0.004", "prompt_price_unit": "0.001", "prompt_price": "0.002744", "completion_tokens": 84, "completion_unit_price": "0.012", "completion_price_unit": "0.001", "completion_price": "0.001008", "total_tokens": 770, "total_price": "0.003752", "currency": "RMB", "latency": 1.7982880361378193}, "finish_reason": "stop", "structured_output": {"result": ["\u4f9d\u6b21\u6309\u7167\u533a\u57df\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ec\u7701\u3001\u5e02\u3001\u533a\u7b49", "\u4f9d\u6b21\u6309\u7167\u7ec4\u7ec7\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ec\u73ed\u6b21\u3001\u73ed\u7ec4\u3001\u4eba\u5458\u7b49", "\u5176\u4ed6\u53ef\u7ec4\u5408\u5206\u6790\u7684\u7ef4\u5ea6: \u8bbe\u5907\u540d\u79f0\uff08\u8bbe\u5907\u7c7b\uff09\u3001\u7f3a\u9677\u7c7b\u578b\uff08\u7f3a\u9677\u7c7b\u522b\u7c7b\uff09"]}, "files": []}, "status": "succeeded", "error": null, "elapsed_time": 1.856754, "execution_metadata": {"total_tokens": 770, "total_price": "0.003752", "currency": "RMB"}, "created_at": 1756430309, "finished_at": 1756430311, "files": [], "parallel_id": null, "parallel_start_node_id": null, "parent_parallel_id": null, "parent_parallel_start_node_id": null, "iteration_id": null, "loop_id": null}}

This is a call to the/console/app/installed apps/{installed'app_id}/chat messages and ADMIN_SPI_KEY methods, and the return value of the eventstream message's outputs is null:

{"event": "node_finished", "conversation_id": "c0729045-5d88-413a-921a-2200846e6a8c", "message_id": "01a4d6c1-8a7d-4e84-86f5-74e4a030a9eb", "created_at": 1756430300, "task_id": "2f678d53-e1c5-4bf1-8655-efd1d50099c2", "workflow_run_id": "df47ee98-6f33-4124-b3a1-0d38ddd49f73", "data": {"id": "0e9ffde2-692d-4f8c-8575-9a02cbca5ea9", "node_id": "1747043834727", "node_type": "llm", "title": "LLM\u4efb\u52a1\u89c4\u5212", "index": 18, "predecessor_node_id": "1746522555614", "inputs": {}, "process_data": {"model_mode": "chat", "prompts": [{"role": "system", "text": "\u73b0\u5728\u4f60\u4f5c\u4e3a\u6570\u636e\u5206\u6790\u65b9\u6848\u89c4\u5212\u4e13\u5bb6\uff0c\u8bf7\u9996\u5148\u9605\u8bfb\u4e0b\u9762\u7684\u6570\u636e\u53c2\u8003\u4fe1\u606f\uff0c\u6211\u73b0\u5728\u9700\u8981\u5bf9\u4e0b\u9762\u7684\u5177\u4f53\u6570\u636e\u4e2d\u5f97\u51fa\u7684\u5f02\u5e38\u63cf\u8ff0\u8fdb\u884c\u540e\u7eed\u7684\u5f02\u5e38\u5f52\u56e0\u6d1e\u5bdf\u5206\u6790\uff0c\u9700\u8981\u7ed3\u5408\u4e0b\u9762\u63d0\u4f9b\u7684\u6570\u636e\u5206\u6790\u8def\u5f84\u8fdb\u884c\u65b9\u6848\u89c4\u5212\u3002\n\n**\u6570\u636e\u53c2\u8003\u4fe1\u606f**\uff1a\n- \u6570\u636e\u6807\u9898\uff1a2024-08\u81f32025-08\u6bcf\u6708\u5404\u65e5\u671f\u7684\u7f3a\u9677\u6570\u91cf\u6570\u636e\u7edf\u8ba1\n\n- \u53c2\u8003\u7ef4\u5ea6\u5206\u6790\u8def\u5f84\uff1a\n{\"\u533a\u57df\u7c7b\": {\"dims\": [], \"is_support_drill\": true}, \"\u7ec4\u7ec7\u7c7b\": {\"dims\": [\"\u73ed\u6b21\"], \"is_support_drill\": true}, \"\u8bbe\u5907\u7c7b\": {\"dims\": [\"\u8bbe\u5907\u540d\u79f0\"], \"is_support_drill\": false}, \"\u7f3a\u9677\u7c7b\u522b\u7c7b\": {\"dims\": [\"\u7f3a\u9677\u7c7b\u578b\"], \"is_support_drill\": false}}\n\n\u6ce8\u610f\uff1ais_support_drill\u4e3atrue\u7684\u7ef4\u5ea6\u5217\u8868dims\u4e2d\u9700\u8981\u9010\u5c42\u4e0b\u94bb\u5206\u6790\n\n**\u8f93\u51fa\u683c\u5f0f\u8981\u6c42**\uff1a\u53ef\u88abPython\u4e2d\u7684json.loads()\u89e3\u6790\n```json\n{\n\t\"result\": \n\t\t[\n\t\t\t\"\u4f9d\u6b21\u6309\u7167XX\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ecX1\u3001X2\u3001X3\u7b49\", # is_support_drill\u4e3atrue\u7684XX\u7ef4\u5ea6\u7c7b\u63cf\u8ff0\n\t\t\t\"\u4f9d\u6b21\u6309\u7167YY\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ecY1\u3001Y2\u3001Y3\u7b49\", # is_support_drill\u4e3atrue\u7684YY\u7ef4\u5ea6\u7c7b\u63cf\u8ff0\n\t\t\t...\n\t\t\t\"\u5176\u4ed6\u53ef\u7ec4\u5408\u5206\u6790\u7684\u7ef4\u5ea6: Q1,Q2,Q3\",\n\t\t]\n}\n```\n\n**\u91cd\u8981\u63d0\u793a**\uff1a\n1. \u65b9\u6848\u524dN\u6b65\u5fc5\u987b\u6839\u636e\u53c2\u8003\u7ef4\u5ea6\u8def\u5f84\u4e2dis_support_drill\u4e3atrue\u7684\u8fdb\u884c\u751f\u6210\uff1b\n2. \u7ec4\u5408\u7ef4\u5ea6\u662f\u6307\u524dN\u9879\u7684\u5206\u6790\u7ed3\u679c\u8fdb\u4e00\u6b65\u7ed3\u5408\u201c\u540e\u7eed\u7ec4\u5408\u7c7b\u201d\u4e2d\u7684\u7ef4\u5ea6\uff1b\n3. \u5217\u4e3e\u5b8c\u53ef\u4e0b\u94bb\u7ef4\u5ea6\u5206\u6790\u540e\uff0c\u6700\u540e\u4e00\u6b65\u4ec5\u5217\u4e3e\u5176\u4ed6\u53ef\u7ec4\u5408\u5206\u6790\u7684\u7ef4\u5ea6\uff0c\u4e0d\u8d85\u8fc73\u4e2a\uff08\u4ec5\u5217\u4e3e\u7ef4\u5ea6\u540d+\u7b80\u5355\u63cf\u8ff0\uff09\uff1b\n4. \u4e0d\u8981\u589e\u52a0\u5176\u4ed6\u7684\u89e3\u91ca\u8bf4\u660e\uff0c\u65b9\u6848\u8bf4\u660e\u3001\u4e3e\u4f8b\u7b49\u63cf\u8ff0\u4fe1\u606f", "files": []}], "usage": {"prompt_tokens": 686, "prompt_unit_price": "0.004", "prompt_price_unit": "0.001", "prompt_price": "0.002744", "completion_tokens": 84, "completion_unit_price": "0.012", "completion_price_unit": "0.001", "completion_price": "0.001008", "total_tokens": 770, "total_price": "0.003752", "currency": "RMB", "latency": 1.7982880361378193}, "finish_reason": "stop", "model_provider": "langgenius/tongyi/tongyi", "model_name": "qwen3-235b-a22b"}, "outputs": {"text": "{\n\t\"result\": [\n\t\t\"\u4f9d\u6b21\u6309\u7167\u533a\u57df\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ec\u7701\u3001\u5e02\u3001\u533a\u7b49\",\n\t\t\"\u4f9d\u6b21\u6309\u7167\u7ec4\u7ec7\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ec\u73ed\u6b21\u3001\u73ed\u7ec4\u3001\u4eba\u5458\u7b49\",\n\t\t\"\u5176\u4ed6\u53ef\u7ec4\u5408\u5206\u6790\u7684\u7ef4\u5ea6: \u8bbe\u5907\u540d\u79f0\uff08\u8bbe\u5907\u7c7b\uff09\u3001\u7f3a\u9677\u7c7b\u578b\uff08\u7f3a\u9677\u7c7b\u522b\u7c7b\uff09\"\n\t]\n}", "usage": {"prompt_tokens": 686, "prompt_unit_price": "0.004", "prompt_price_unit": "0.001", "prompt_price": "0.002744", "completion_tokens": 84, "completion_unit_price": "0.012", "completion_price_unit": "0.001", "completion_price": "0.001008", "total_tokens": 770, "total_price": "0.003752", "currency": "RMB", "latency": 1.7982880361378193}, "finish_reason": "stop", "structured_output": {"result": ["\u4f9d\u6b21\u6309\u7167\u533a\u57df\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ec\u7701\u3001\u5e02\u3001\u533a\u7b49", "\u4f9d\u6b21\u6309\u7167\u7ec4\u7ec7\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ec\u73ed\u6b21\u3001\u73ed\u7ec4\u3001\u4eba\u5458\u7b49", "\u5176\u4ed6\u53ef\u7ec4\u5408\u5206\u6790\u7684\u7ef4\u5ea6: \u8bbe\u5907\u540d\u79f0\uff08\u8bbe\u5907\u7c7b\uff09\u3001\u7f3a\u9677\u7c7b\u578b\uff08\u7f3a\u9677\u7c7b\u522b\u7c7b\uff09"]}, "files": []}, "status": "succeeded", "error": null, "elapsed_time": 1.856754, "execution_metadata": {"total_tokens": 770, "total_price": "0.003752", "currency": "RMB"}, "created_at": 1756430309, "finished_at": 1756430311, "files": [], "parallel_id": null, "parallel_start_node_id": null, "parent_parallel_id": null, "parent_parallel_start_node_id": null, "iteration_id": null, "loop_id": null}}

@18191518054 commented on GitHub (Aug 28, 2025): > 请提供一些日志和一些屏幕截图。 This is a call to the/console/app/{appid}/advanced chat/workflows/draft/run method, which returns a value for the outputs of the eventstream message: ``` {"event": "node_finished", "conversation_id": "c0729045-5d88-413a-921a-2200846e6a8c", "message_id": "01a4d6c1-8a7d-4e84-86f5-74e4a030a9eb", "created_at": 1756430300, "task_id": "2f678d53-e1c5-4bf1-8655-efd1d50099c2", "workflow_run_id": "df47ee98-6f33-4124-b3a1-0d38ddd49f73", "data": {"id": "0e9ffde2-692d-4f8c-8575-9a02cbca5ea9", "node_id": "1747043834727", "node_type": "llm", "title": "LLM\u4efb\u52a1\u89c4\u5212", "index": 18, "predecessor_node_id": "1746522555614", "inputs": {}, "process_data": {"model_mode": "chat", "prompts": [{"role": "system", "text": "\u73b0\u5728\u4f60\u4f5c\u4e3a\u6570\u636e\u5206\u6790\u65b9\u6848\u89c4\u5212\u4e13\u5bb6\uff0c\u8bf7\u9996\u5148\u9605\u8bfb\u4e0b\u9762\u7684\u6570\u636e\u53c2\u8003\u4fe1\u606f\uff0c\u6211\u73b0\u5728\u9700\u8981\u5bf9\u4e0b\u9762\u7684\u5177\u4f53\u6570\u636e\u4e2d\u5f97\u51fa\u7684\u5f02\u5e38\u63cf\u8ff0\u8fdb\u884c\u540e\u7eed\u7684\u5f02\u5e38\u5f52\u56e0\u6d1e\u5bdf\u5206\u6790\uff0c\u9700\u8981\u7ed3\u5408\u4e0b\u9762\u63d0\u4f9b\u7684\u6570\u636e\u5206\u6790\u8def\u5f84\u8fdb\u884c\u65b9\u6848\u89c4\u5212\u3002\n\n**\u6570\u636e\u53c2\u8003\u4fe1\u606f**\uff1a\n- \u6570\u636e\u6807\u9898\uff1a2024-08\u81f32025-08\u6bcf\u6708\u5404\u65e5\u671f\u7684\u7f3a\u9677\u6570\u91cf\u6570\u636e\u7edf\u8ba1\n\n- \u53c2\u8003\u7ef4\u5ea6\u5206\u6790\u8def\u5f84\uff1a\n{\"\u533a\u57df\u7c7b\": {\"dims\": [], \"is_support_drill\": true}, \"\u7ec4\u7ec7\u7c7b\": {\"dims\": [\"\u73ed\u6b21\"], \"is_support_drill\": true}, \"\u8bbe\u5907\u7c7b\": {\"dims\": [\"\u8bbe\u5907\u540d\u79f0\"], \"is_support_drill\": false}, \"\u7f3a\u9677\u7c7b\u522b\u7c7b\": {\"dims\": [\"\u7f3a\u9677\u7c7b\u578b\"], \"is_support_drill\": false}}\n\n\u6ce8\u610f\uff1ais_support_drill\u4e3atrue\u7684\u7ef4\u5ea6\u5217\u8868dims\u4e2d\u9700\u8981\u9010\u5c42\u4e0b\u94bb\u5206\u6790\n\n**\u8f93\u51fa\u683c\u5f0f\u8981\u6c42**\uff1a\u53ef\u88abPython\u4e2d\u7684json.loads()\u89e3\u6790\n```json\n{\n\t\"result\": \n\t\t[\n\t\t\t\"\u4f9d\u6b21\u6309\u7167XX\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ecX1\u3001X2\u3001X3\u7b49\", # is_support_drill\u4e3atrue\u7684XX\u7ef4\u5ea6\u7c7b\u63cf\u8ff0\n\t\t\t\"\u4f9d\u6b21\u6309\u7167YY\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ecY1\u3001Y2\u3001Y3\u7b49\", # is_support_drill\u4e3atrue\u7684YY\u7ef4\u5ea6\u7c7b\u63cf\u8ff0\n\t\t\t...\n\t\t\t\"\u5176\u4ed6\u53ef\u7ec4\u5408\u5206\u6790\u7684\u7ef4\u5ea6: Q1,Q2,Q3\",\n\t\t]\n}\n```\n\n**\u91cd\u8981\u63d0\u793a**\uff1a\n1. \u65b9\u6848\u524dN\u6b65\u5fc5\u987b\u6839\u636e\u53c2\u8003\u7ef4\u5ea6\u8def\u5f84\u4e2dis_support_drill\u4e3atrue\u7684\u8fdb\u884c\u751f\u6210\uff1b\n2. \u7ec4\u5408\u7ef4\u5ea6\u662f\u6307\u524dN\u9879\u7684\u5206\u6790\u7ed3\u679c\u8fdb\u4e00\u6b65\u7ed3\u5408\u201c\u540e\u7eed\u7ec4\u5408\u7c7b\u201d\u4e2d\u7684\u7ef4\u5ea6\uff1b\n3. \u5217\u4e3e\u5b8c\u53ef\u4e0b\u94bb\u7ef4\u5ea6\u5206\u6790\u540e\uff0c\u6700\u540e\u4e00\u6b65\u4ec5\u5217\u4e3e\u5176\u4ed6\u53ef\u7ec4\u5408\u5206\u6790\u7684\u7ef4\u5ea6\uff0c\u4e0d\u8d85\u8fc73\u4e2a\uff08\u4ec5\u5217\u4e3e\u7ef4\u5ea6\u540d+\u7b80\u5355\u63cf\u8ff0\uff09\uff1b\n4. \u4e0d\u8981\u589e\u52a0\u5176\u4ed6\u7684\u89e3\u91ca\u8bf4\u660e\uff0c\u65b9\u6848\u8bf4\u660e\u3001\u4e3e\u4f8b\u7b49\u63cf\u8ff0\u4fe1\u606f", "files": []}], "usage": {"prompt_tokens": 686, "prompt_unit_price": "0.004", "prompt_price_unit": "0.001", "prompt_price": "0.002744", "completion_tokens": 84, "completion_unit_price": "0.012", "completion_price_unit": "0.001", "completion_price": "0.001008", "total_tokens": 770, "total_price": "0.003752", "currency": "RMB", "latency": 1.7982880361378193}, "finish_reason": "stop", "model_provider": "langgenius/tongyi/tongyi", "model_name": "qwen3-235b-a22b"}, "outputs": {"text": "{\n\t\"result\": [\n\t\t\"\u4f9d\u6b21\u6309\u7167\u533a\u57df\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ec\u7701\u3001\u5e02\u3001\u533a\u7b49\",\n\t\t\"\u4f9d\u6b21\u6309\u7167\u7ec4\u7ec7\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ec\u73ed\u6b21\u3001\u73ed\u7ec4\u3001\u4eba\u5458\u7b49\",\n\t\t\"\u5176\u4ed6\u53ef\u7ec4\u5408\u5206\u6790\u7684\u7ef4\u5ea6: \u8bbe\u5907\u540d\u79f0\uff08\u8bbe\u5907\u7c7b\uff09\u3001\u7f3a\u9677\u7c7b\u578b\uff08\u7f3a\u9677\u7c7b\u522b\u7c7b\uff09\"\n\t]\n}", "usage": {"prompt_tokens": 686, "prompt_unit_price": "0.004", "prompt_price_unit": "0.001", "prompt_price": "0.002744", "completion_tokens": 84, "completion_unit_price": "0.012", "completion_price_unit": "0.001", "completion_price": "0.001008", "total_tokens": 770, "total_price": "0.003752", "currency": "RMB", "latency": 1.7982880361378193}, "finish_reason": "stop", "structured_output": {"result": ["\u4f9d\u6b21\u6309\u7167\u533a\u57df\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ec\u7701\u3001\u5e02\u3001\u533a\u7b49", "\u4f9d\u6b21\u6309\u7167\u7ec4\u7ec7\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ec\u73ed\u6b21\u3001\u73ed\u7ec4\u3001\u4eba\u5458\u7b49", "\u5176\u4ed6\u53ef\u7ec4\u5408\u5206\u6790\u7684\u7ef4\u5ea6: \u8bbe\u5907\u540d\u79f0\uff08\u8bbe\u5907\u7c7b\uff09\u3001\u7f3a\u9677\u7c7b\u578b\uff08\u7f3a\u9677\u7c7b\u522b\u7c7b\uff09"]}, "files": []}, "status": "succeeded", "error": null, "elapsed_time": 1.856754, "execution_metadata": {"total_tokens": 770, "total_price": "0.003752", "currency": "RMB"}, "created_at": 1756430309, "finished_at": 1756430311, "files": [], "parallel_id": null, "parallel_start_node_id": null, "parent_parallel_id": null, "parent_parallel_start_node_id": null, "iteration_id": null, "loop_id": null}} ``` <!-- Failed to upload "Snipaste_2025-08-29_09-23-12.png" --> This is a call to the/console/app/installed apps/{installed'app_id}/chat messages and ADMIN_SPI_KEY methods, and the return value of the eventstream message's outputs is null: <!-- Failed to upload "Snipaste_2025-08-29_09-27-55.png" --> ``` {"event": "node_finished", "conversation_id": "c0729045-5d88-413a-921a-2200846e6a8c", "message_id": "01a4d6c1-8a7d-4e84-86f5-74e4a030a9eb", "created_at": 1756430300, "task_id": "2f678d53-e1c5-4bf1-8655-efd1d50099c2", "workflow_run_id": "df47ee98-6f33-4124-b3a1-0d38ddd49f73", "data": {"id": "0e9ffde2-692d-4f8c-8575-9a02cbca5ea9", "node_id": "1747043834727", "node_type": "llm", "title": "LLM\u4efb\u52a1\u89c4\u5212", "index": 18, "predecessor_node_id": "1746522555614", "inputs": {}, "process_data": {"model_mode": "chat", "prompts": [{"role": "system", "text": "\u73b0\u5728\u4f60\u4f5c\u4e3a\u6570\u636e\u5206\u6790\u65b9\u6848\u89c4\u5212\u4e13\u5bb6\uff0c\u8bf7\u9996\u5148\u9605\u8bfb\u4e0b\u9762\u7684\u6570\u636e\u53c2\u8003\u4fe1\u606f\uff0c\u6211\u73b0\u5728\u9700\u8981\u5bf9\u4e0b\u9762\u7684\u5177\u4f53\u6570\u636e\u4e2d\u5f97\u51fa\u7684\u5f02\u5e38\u63cf\u8ff0\u8fdb\u884c\u540e\u7eed\u7684\u5f02\u5e38\u5f52\u56e0\u6d1e\u5bdf\u5206\u6790\uff0c\u9700\u8981\u7ed3\u5408\u4e0b\u9762\u63d0\u4f9b\u7684\u6570\u636e\u5206\u6790\u8def\u5f84\u8fdb\u884c\u65b9\u6848\u89c4\u5212\u3002\n\n**\u6570\u636e\u53c2\u8003\u4fe1\u606f**\uff1a\n- \u6570\u636e\u6807\u9898\uff1a2024-08\u81f32025-08\u6bcf\u6708\u5404\u65e5\u671f\u7684\u7f3a\u9677\u6570\u91cf\u6570\u636e\u7edf\u8ba1\n\n- \u53c2\u8003\u7ef4\u5ea6\u5206\u6790\u8def\u5f84\uff1a\n{\"\u533a\u57df\u7c7b\": {\"dims\": [], \"is_support_drill\": true}, \"\u7ec4\u7ec7\u7c7b\": {\"dims\": [\"\u73ed\u6b21\"], \"is_support_drill\": true}, \"\u8bbe\u5907\u7c7b\": {\"dims\": [\"\u8bbe\u5907\u540d\u79f0\"], \"is_support_drill\": false}, \"\u7f3a\u9677\u7c7b\u522b\u7c7b\": {\"dims\": [\"\u7f3a\u9677\u7c7b\u578b\"], \"is_support_drill\": false}}\n\n\u6ce8\u610f\uff1ais_support_drill\u4e3atrue\u7684\u7ef4\u5ea6\u5217\u8868dims\u4e2d\u9700\u8981\u9010\u5c42\u4e0b\u94bb\u5206\u6790\n\n**\u8f93\u51fa\u683c\u5f0f\u8981\u6c42**\uff1a\u53ef\u88abPython\u4e2d\u7684json.loads()\u89e3\u6790\n```json\n{\n\t\"result\": \n\t\t[\n\t\t\t\"\u4f9d\u6b21\u6309\u7167XX\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ecX1\u3001X2\u3001X3\u7b49\", # is_support_drill\u4e3atrue\u7684XX\u7ef4\u5ea6\u7c7b\u63cf\u8ff0\n\t\t\t\"\u4f9d\u6b21\u6309\u7167YY\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ecY1\u3001Y2\u3001Y3\u7b49\", # is_support_drill\u4e3atrue\u7684YY\u7ef4\u5ea6\u7c7b\u63cf\u8ff0\n\t\t\t...\n\t\t\t\"\u5176\u4ed6\u53ef\u7ec4\u5408\u5206\u6790\u7684\u7ef4\u5ea6: Q1,Q2,Q3\",\n\t\t]\n}\n```\n\n**\u91cd\u8981\u63d0\u793a**\uff1a\n1. \u65b9\u6848\u524dN\u6b65\u5fc5\u987b\u6839\u636e\u53c2\u8003\u7ef4\u5ea6\u8def\u5f84\u4e2dis_support_drill\u4e3atrue\u7684\u8fdb\u884c\u751f\u6210\uff1b\n2. \u7ec4\u5408\u7ef4\u5ea6\u662f\u6307\u524dN\u9879\u7684\u5206\u6790\u7ed3\u679c\u8fdb\u4e00\u6b65\u7ed3\u5408\u201c\u540e\u7eed\u7ec4\u5408\u7c7b\u201d\u4e2d\u7684\u7ef4\u5ea6\uff1b\n3. \u5217\u4e3e\u5b8c\u53ef\u4e0b\u94bb\u7ef4\u5ea6\u5206\u6790\u540e\uff0c\u6700\u540e\u4e00\u6b65\u4ec5\u5217\u4e3e\u5176\u4ed6\u53ef\u7ec4\u5408\u5206\u6790\u7684\u7ef4\u5ea6\uff0c\u4e0d\u8d85\u8fc73\u4e2a\uff08\u4ec5\u5217\u4e3e\u7ef4\u5ea6\u540d+\u7b80\u5355\u63cf\u8ff0\uff09\uff1b\n4. \u4e0d\u8981\u589e\u52a0\u5176\u4ed6\u7684\u89e3\u91ca\u8bf4\u660e\uff0c\u65b9\u6848\u8bf4\u660e\u3001\u4e3e\u4f8b\u7b49\u63cf\u8ff0\u4fe1\u606f", "files": []}], "usage": {"prompt_tokens": 686, "prompt_unit_price": "0.004", "prompt_price_unit": "0.001", "prompt_price": "0.002744", "completion_tokens": 84, "completion_unit_price": "0.012", "completion_price_unit": "0.001", "completion_price": "0.001008", "total_tokens": 770, "total_price": "0.003752", "currency": "RMB", "latency": 1.7982880361378193}, "finish_reason": "stop", "model_provider": "langgenius/tongyi/tongyi", "model_name": "qwen3-235b-a22b"}, "outputs": {"text": "{\n\t\"result\": [\n\t\t\"\u4f9d\u6b21\u6309\u7167\u533a\u57df\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ec\u7701\u3001\u5e02\u3001\u533a\u7b49\",\n\t\t\"\u4f9d\u6b21\u6309\u7167\u7ec4\u7ec7\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ec\u73ed\u6b21\u3001\u73ed\u7ec4\u3001\u4eba\u5458\u7b49\",\n\t\t\"\u5176\u4ed6\u53ef\u7ec4\u5408\u5206\u6790\u7684\u7ef4\u5ea6: \u8bbe\u5907\u540d\u79f0\uff08\u8bbe\u5907\u7c7b\uff09\u3001\u7f3a\u9677\u7c7b\u578b\uff08\u7f3a\u9677\u7c7b\u522b\u7c7b\uff09\"\n\t]\n}", "usage": {"prompt_tokens": 686, "prompt_unit_price": "0.004", "prompt_price_unit": "0.001", "prompt_price": "0.002744", "completion_tokens": 84, "completion_unit_price": "0.012", "completion_price_unit": "0.001", "completion_price": "0.001008", "total_tokens": 770, "total_price": "0.003752", "currency": "RMB", "latency": 1.7982880361378193}, "finish_reason": "stop", "structured_output": {"result": ["\u4f9d\u6b21\u6309\u7167\u533a\u57df\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ec\u7701\u3001\u5e02\u3001\u533a\u7b49", "\u4f9d\u6b21\u6309\u7167\u7ec4\u7ec7\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ec\u73ed\u6b21\u3001\u73ed\u7ec4\u3001\u4eba\u5458\u7b49", "\u5176\u4ed6\u53ef\u7ec4\u5408\u5206\u6790\u7684\u7ef4\u5ea6: \u8bbe\u5907\u540d\u79f0\uff08\u8bbe\u5907\u7c7b\uff09\u3001\u7f3a\u9677\u7c7b\u578b\uff08\u7f3a\u9677\u7c7b\u522b\u7c7b\uff09"]}, "files": []}, "status": "succeeded", "error": null, "elapsed_time": 1.856754, "execution_metadata": {"total_tokens": 770, "total_price": "0.003752", "currency": "RMB"}, "created_at": 1756430309, "finished_at": 1756430311, "files": [], "parallel_id": null, "parallel_start_node_id": null, "parent_parallel_id": null, "parent_parallel_start_node_id": null, "iteration_id": null, "loop_id": null}} ```
Author
Owner

@18191518054 commented on GitHub (Aug 28, 2025):

Image Image
@18191518054 commented on GitHub (Aug 28, 2025): <img width="1935" height="654" alt="Image" src="https://github.com/user-attachments/assets/d76a491d-8dfd-4b43-8142-e310fc103233" /> <img width="1881" height="885" alt="Image" src="https://github.com/user-attachments/assets/478e24df-e318-4fd4-bf1c-0224735aaaec" />
Author
Owner

@crazywoola commented on GitHub (Aug 28, 2025):

{"event": "node_finished", "conversation_id": "c0729045-5d88-413a-921a-2200846e6a8c", "message_id": "01a4d6c1-8a7d-4e84-86f5-74e4a030a9eb", "created_at": 1756430300, "task_id": "2f678d53-e1c5-4bf1-8655-efd1d50099c2", "workflow_run_id": "df47ee98-6f33-4124-b3a1-0d38ddd49f73", "data": {"id": "0e9ffde2-692d-4f8c-8575-9a02cbca5ea9", "node_id": "1747043834727", "node_type": "llm", "title": "LLM\u4efb\u52a1\u89c4\u5212", "index": 18, "predecessor_node_id": "1746522555614", "inputs": {}, "process_data": {"model_mode": "chat", "prompts": [{"role": "system", "text": "\u73b0\u5728\u4f60\u4f5c\u4e3a\u6570\u636e\u5206\u6790\u65b9\u6848\u89c4\u5212\u4e13\u5bb6\uff0c\u8bf7\u9996\u5148\u9605\u8bfb\u4e0b\u9762\u7684\u6570\u636e\u53c2\u8003\u4fe1\u606f\uff0c\u6211\u73b0\u5728\u9700\u8981\u5bf9\u4e0b\u9762\u7684\u5177\u4f53\u6570\u636e\u4e2d\u5f97\u51fa\u7684\u5f02\u5e38\u63cf\u8ff0\u8fdb\u884c\u540e\u7eed\u7684\u5f02\u5e38\u5f52\u56e0\u6d1e\u5bdf\u5206\u6790\uff0c\u9700\u8981\u7ed3\u5408\u4e0b\u9762\u63d0\u4f9b\u7684\u6570\u636e\u5206\u6790\u8def\u5f84\u8fdb\u884c\u65b9\u6848\u89c4\u5212\u3002\n\n**\u6570\u636e\u53c2\u8003\u4fe1\u606f**\uff1a\n- \u6570\u636e\u6807\u9898\uff1a2024-08\u81f32025-08\u6bcf\u6708\u5404\u65e5\u671f\u7684\u7f3a\u9677\u6570\u91cf\u6570\u636e\u7edf\u8ba1\n\n- \u53c2\u8003\u7ef4\u5ea6\u5206\u6790\u8def\u5f84\uff1a\n{\"\u533a\u57df\u7c7b\": {\"dims\": [], \"is_support_drill\": true}, \"\u7ec4\u7ec7\u7c7b\": {\"dims\": [\"\u73ed\u6b21\"], \"is_support_drill\": true}, \"\u8bbe\u5907\u7c7b\": {\"dims\": [\"\u8bbe\u5907\u540d\u79f0\"], \"is_support_drill\": false}, \"\u7f3a\u9677\u7c7b\u522b\u7c7b\": {\"dims\": [\"\u7f3a\u9677\u7c7b\u578b\"], \"is_support_drill\": false}}\n\n\u6ce8\u610f\uff1ais_support_drill\u4e3atrue\u7684\u7ef4\u5ea6\u5217\u8868dims\u4e2d\u9700\u8981\u9010\u5c42\u4e0b\u94bb\u5206\u6790\n\n**\u8f93\u51fa\u683c\u5f0f\u8981\u6c42**\uff1a\u53ef\u88abPython\u4e2d\u7684json.loads()\u89e3\u6790\n```json\n{\n\t\"result\": \n\t\t[\n\t\t\t\"\u4f9d\u6b21\u6309\u7167XX\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ecX1\u3001X2\u3001X3\u7b49\", # is_support_drill\u4e3atrue\u7684XX\u7ef4\u5ea6\u7c7b\u63cf\u8ff0\n\t\t\t\"\u4f9d\u6b21\u6309\u7167YY\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ecY1\u3001Y2\u3001Y3\u7b49\", # is_support_drill\u4e3atrue\u7684YY\u7ef4\u5ea6\u7c7b\u63cf\u8ff0\n\t\t\t...\n\t\t\t\"\u5176\u4ed6\u53ef\u7ec4\u5408\u5206\u6790\u7684\u7ef4\u5ea6: Q1,Q2,Q3\",\n\t\t]\n}\n```\n\n**\u91cd\u8981\u63d0\u793a**\uff1a\n1. \u65b9\u6848\u524dN\u6b65\u5fc5\u987b\u6839\u636e\u53c2\u8003\u7ef4\u5ea6\u8def\u5f84\u4e2dis_support_drill\u4e3atrue\u7684\u8fdb\u884c\u751f\u6210\uff1b\n2. \u7ec4\u5408\u7ef4\u5ea6\u662f\u6307\u524dN\u9879\u7684\u5206\u6790\u7ed3\u679c\u8fdb\u4e00\u6b65\u7ed3\u5408\u201c\u540e\u7eed\u7ec4\u5408\u7c7b\u201d\u4e2d\u7684\u7ef4\u5ea6\uff1b\n3. \u5217\u4e3e\u5b8c\u53ef\u4e0b\u94bb\u7ef4\u5ea6\u5206\u6790\u540e\uff0c\u6700\u540e\u4e00\u6b65\u4ec5\u5217\u4e3e\u5176\u4ed6\u53ef\u7ec4\u5408\u5206\u6790\u7684\u7ef4\u5ea6\uff0c\u4e0d\u8d85\u8fc73\u4e2a\uff08\u4ec5\u5217\u4e3e\u7ef4\u5ea6\u540d+\u7b80\u5355\u63cf\u8ff0\uff09\uff1b\n4. \u4e0d\u8981\u589e\u52a0\u5176\u4ed6\u7684\u89e3\u91ca\u8bf4\u660e\uff0c\u65b9\u6848\u8bf4\u660e\u3001\u4e3e\u4f8b\u7b49\u63cf\u8ff0\u4fe1\u606f", "files": []}], "usage": {"prompt_tokens": 686, "prompt_unit_price": "0.004", "prompt_price_unit": "0.001", "prompt_price": "0.002744", "completion_tokens": 84, "completion_unit_price": "0.012", "completion_price_unit": "0.001", "completion_price": "0.001008", "total_tokens": 770, "total_price": "0.003752", "currency": "RMB", "latency": 1.7982880361378193}, "finish_reason": "stop", "model_provider": "langgenius/tongyi/tongyi", "model_name": "qwen3-235b-a22b"}, "outputs": {"text": "{\n\t\"result\": [\n\t\t\"\u4f9d\u6b21\u6309\u7167\u533a\u57df\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ec\u7701\u3001\u5e02\u3001\u533a\u7b49\",\n\t\t\"\u4f9d\u6b21\u6309\u7167\u7ec4\u7ec7\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ec\u73ed\u6b21\u3001\u73ed\u7ec4\u3001\u4eba\u5458\u7b49\",\n\t\t\"\u5176\u4ed6\u53ef\u7ec4\u5408\u5206\u6790\u7684\u7ef4\u5ea6: \u8bbe\u5907\u540d\u79f0\uff08\u8bbe\u5907\u7c7b\uff09\u3001\u7f3a\u9677\u7c7b\u578b\uff08\u7f3a\u9677\u7c7b\u522b\u7c7b\uff09\"\n\t]\n}", "usage": {"prompt_tokens": 686, "prompt_unit_price": "0.004", "prompt_price_unit": "0.001", "prompt_price": "0.002744", "completion_tokens": 84, "completion_unit_price": "0.012", "completion_price_unit": "0.001", "completion_price": "0.001008", "total_tokens": 770, "total_price": "0.003752", "currency": "RMB", "latency": 1.7982880361378193}, "finish_reason": "stop", "structured_output": {"result": ["\u4f9d\u6b21\u6309\u7167\u533a\u57df\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ec\u7701\u3001\u5e02\u3001\u533a\u7b49", "\u4f9d\u6b21\u6309\u7167\u7ec4\u7ec7\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ec\u73ed\u6b21\u3001\u73ed\u7ec4\u3001\u4eba\u5458\u7b49", "\u5176\u4ed6\u53ef\u7ec4\u5408\u5206\u6790\u7684\u7ef4\u5ea6: \u8bbe\u5907\u540d\u79f0\uff08\u8bbe\u5907\u7c7b\uff09\u3001\u7f3a\u9677\u7c7b\u578b\uff08\u7f3a\u9677\u7c7b\u522b\u7c7b\uff09"]}, "files": []}, "status": "succeeded", "error": null, "elapsed_time": 1.856754, "execution_metadata": {"total_tokens": 770, "total_price": "0.003752", "currency": "RMB"}, "created_at": 1756430309, "finished_at": 1756430311, "files": [], "parallel_id": null, "parallel_start_node_id": null, "parent_parallel_id": null, "parent_parallel_start_node_id": null, "iteration_id": null, "loop_id": null}}

I do see the text field in the API response.

All the output should be found in the workflow_finished event.

@crazywoola commented on GitHub (Aug 28, 2025): ``` {"event": "node_finished", "conversation_id": "c0729045-5d88-413a-921a-2200846e6a8c", "message_id": "01a4d6c1-8a7d-4e84-86f5-74e4a030a9eb", "created_at": 1756430300, "task_id": "2f678d53-e1c5-4bf1-8655-efd1d50099c2", "workflow_run_id": "df47ee98-6f33-4124-b3a1-0d38ddd49f73", "data": {"id": "0e9ffde2-692d-4f8c-8575-9a02cbca5ea9", "node_id": "1747043834727", "node_type": "llm", "title": "LLM\u4efb\u52a1\u89c4\u5212", "index": 18, "predecessor_node_id": "1746522555614", "inputs": {}, "process_data": {"model_mode": "chat", "prompts": [{"role": "system", "text": "\u73b0\u5728\u4f60\u4f5c\u4e3a\u6570\u636e\u5206\u6790\u65b9\u6848\u89c4\u5212\u4e13\u5bb6\uff0c\u8bf7\u9996\u5148\u9605\u8bfb\u4e0b\u9762\u7684\u6570\u636e\u53c2\u8003\u4fe1\u606f\uff0c\u6211\u73b0\u5728\u9700\u8981\u5bf9\u4e0b\u9762\u7684\u5177\u4f53\u6570\u636e\u4e2d\u5f97\u51fa\u7684\u5f02\u5e38\u63cf\u8ff0\u8fdb\u884c\u540e\u7eed\u7684\u5f02\u5e38\u5f52\u56e0\u6d1e\u5bdf\u5206\u6790\uff0c\u9700\u8981\u7ed3\u5408\u4e0b\u9762\u63d0\u4f9b\u7684\u6570\u636e\u5206\u6790\u8def\u5f84\u8fdb\u884c\u65b9\u6848\u89c4\u5212\u3002\n\n**\u6570\u636e\u53c2\u8003\u4fe1\u606f**\uff1a\n- \u6570\u636e\u6807\u9898\uff1a2024-08\u81f32025-08\u6bcf\u6708\u5404\u65e5\u671f\u7684\u7f3a\u9677\u6570\u91cf\u6570\u636e\u7edf\u8ba1\n\n- \u53c2\u8003\u7ef4\u5ea6\u5206\u6790\u8def\u5f84\uff1a\n{\"\u533a\u57df\u7c7b\": {\"dims\": [], \"is_support_drill\": true}, \"\u7ec4\u7ec7\u7c7b\": {\"dims\": [\"\u73ed\u6b21\"], \"is_support_drill\": true}, \"\u8bbe\u5907\u7c7b\": {\"dims\": [\"\u8bbe\u5907\u540d\u79f0\"], \"is_support_drill\": false}, \"\u7f3a\u9677\u7c7b\u522b\u7c7b\": {\"dims\": [\"\u7f3a\u9677\u7c7b\u578b\"], \"is_support_drill\": false}}\n\n\u6ce8\u610f\uff1ais_support_drill\u4e3atrue\u7684\u7ef4\u5ea6\u5217\u8868dims\u4e2d\u9700\u8981\u9010\u5c42\u4e0b\u94bb\u5206\u6790\n\n**\u8f93\u51fa\u683c\u5f0f\u8981\u6c42**\uff1a\u53ef\u88abPython\u4e2d\u7684json.loads()\u89e3\u6790\n```json\n{\n\t\"result\": \n\t\t[\n\t\t\t\"\u4f9d\u6b21\u6309\u7167XX\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ecX1\u3001X2\u3001X3\u7b49\", # is_support_drill\u4e3atrue\u7684XX\u7ef4\u5ea6\u7c7b\u63cf\u8ff0\n\t\t\t\"\u4f9d\u6b21\u6309\u7167YY\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ecY1\u3001Y2\u3001Y3\u7b49\", # is_support_drill\u4e3atrue\u7684YY\u7ef4\u5ea6\u7c7b\u63cf\u8ff0\n\t\t\t...\n\t\t\t\"\u5176\u4ed6\u53ef\u7ec4\u5408\u5206\u6790\u7684\u7ef4\u5ea6: Q1,Q2,Q3\",\n\t\t]\n}\n```\n\n**\u91cd\u8981\u63d0\u793a**\uff1a\n1. \u65b9\u6848\u524dN\u6b65\u5fc5\u987b\u6839\u636e\u53c2\u8003\u7ef4\u5ea6\u8def\u5f84\u4e2dis_support_drill\u4e3atrue\u7684\u8fdb\u884c\u751f\u6210\uff1b\n2. \u7ec4\u5408\u7ef4\u5ea6\u662f\u6307\u524dN\u9879\u7684\u5206\u6790\u7ed3\u679c\u8fdb\u4e00\u6b65\u7ed3\u5408\u201c\u540e\u7eed\u7ec4\u5408\u7c7b\u201d\u4e2d\u7684\u7ef4\u5ea6\uff1b\n3. \u5217\u4e3e\u5b8c\u53ef\u4e0b\u94bb\u7ef4\u5ea6\u5206\u6790\u540e\uff0c\u6700\u540e\u4e00\u6b65\u4ec5\u5217\u4e3e\u5176\u4ed6\u53ef\u7ec4\u5408\u5206\u6790\u7684\u7ef4\u5ea6\uff0c\u4e0d\u8d85\u8fc73\u4e2a\uff08\u4ec5\u5217\u4e3e\u7ef4\u5ea6\u540d+\u7b80\u5355\u63cf\u8ff0\uff09\uff1b\n4. \u4e0d\u8981\u589e\u52a0\u5176\u4ed6\u7684\u89e3\u91ca\u8bf4\u660e\uff0c\u65b9\u6848\u8bf4\u660e\u3001\u4e3e\u4f8b\u7b49\u63cf\u8ff0\u4fe1\u606f", "files": []}], "usage": {"prompt_tokens": 686, "prompt_unit_price": "0.004", "prompt_price_unit": "0.001", "prompt_price": "0.002744", "completion_tokens": 84, "completion_unit_price": "0.012", "completion_price_unit": "0.001", "completion_price": "0.001008", "total_tokens": 770, "total_price": "0.003752", "currency": "RMB", "latency": 1.7982880361378193}, "finish_reason": "stop", "model_provider": "langgenius/tongyi/tongyi", "model_name": "qwen3-235b-a22b"}, "outputs": {"text": "{\n\t\"result\": [\n\t\t\"\u4f9d\u6b21\u6309\u7167\u533a\u57df\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ec\u7701\u3001\u5e02\u3001\u533a\u7b49\",\n\t\t\"\u4f9d\u6b21\u6309\u7167\u7ec4\u7ec7\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ec\u73ed\u6b21\u3001\u73ed\u7ec4\u3001\u4eba\u5458\u7b49\",\n\t\t\"\u5176\u4ed6\u53ef\u7ec4\u5408\u5206\u6790\u7684\u7ef4\u5ea6: \u8bbe\u5907\u540d\u79f0\uff08\u8bbe\u5907\u7c7b\uff09\u3001\u7f3a\u9677\u7c7b\u578b\uff08\u7f3a\u9677\u7c7b\u522b\u7c7b\uff09\"\n\t]\n}", "usage": {"prompt_tokens": 686, "prompt_unit_price": "0.004", "prompt_price_unit": "0.001", "prompt_price": "0.002744", "completion_tokens": 84, "completion_unit_price": "0.012", "completion_price_unit": "0.001", "completion_price": "0.001008", "total_tokens": 770, "total_price": "0.003752", "currency": "RMB", "latency": 1.7982880361378193}, "finish_reason": "stop", "structured_output": {"result": ["\u4f9d\u6b21\u6309\u7167\u533a\u57df\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ec\u7701\u3001\u5e02\u3001\u533a\u7b49", "\u4f9d\u6b21\u6309\u7167\u7ec4\u7ec7\u7c7b\u7ef4\u5ea6\u9010\u5c42\u4e0b\u94bb\u5206\u6790\uff0c\u5305\u62ec\u73ed\u6b21\u3001\u73ed\u7ec4\u3001\u4eba\u5458\u7b49", "\u5176\u4ed6\u53ef\u7ec4\u5408\u5206\u6790\u7684\u7ef4\u5ea6: \u8bbe\u5907\u540d\u79f0\uff08\u8bbe\u5907\u7c7b\uff09\u3001\u7f3a\u9677\u7c7b\u578b\uff08\u7f3a\u9677\u7c7b\u522b\u7c7b\uff09"]}, "files": []}, "status": "succeeded", "error": null, "elapsed_time": 1.856754, "execution_metadata": {"total_tokens": 770, "total_price": "0.003752", "currency": "RMB"}, "created_at": 1756430309, "finished_at": 1756430311, "files": [], "parallel_id": null, "parallel_start_node_id": null, "parent_parallel_id": null, "parent_parallel_start_node_id": null, "iteration_id": null, "loop_id": null}} ``` I do see the `text` field in the API response. All the output should be found in the `workflow_finished` event.
Author
Owner

@crazywoola commented on GitHub (Aug 28, 2025):

How do you call this API interface? /console/api/installed-apps/{installed_app_id}/chat-messages

I don't remember there is a ADMIN_API_KEY stuff to call this endpoint, this should be used from the web interface only.

@crazywoola commented on GitHub (Aug 28, 2025): How do you call this API interface? `/console/api/installed-apps/{installed_app_id}/chat-messages` I don't remember there is a `ADMIN_API_KEY` stuff to call this endpoint, this should be used from the web interface only.
Author
Owner

@18191518054 commented on GitHub (Aug 28, 2025):

Here is the screenshot

Image
@18191518054 commented on GitHub (Aug 28, 2025): Here is the screenshot <img width="1615" height="727" alt="Image" src="https://github.com/user-attachments/assets/6467c8fb-539a-4bff-98c0-6965d19e6610" />
Author
Owner

@18191518054 commented on GitHub (Aug 28, 2025):

At the same time, configuration needs to be added:
ADMIN_API_KEY_ENABLE: true
ADMIN_API_KEY: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

@18191518054 commented on GitHub (Aug 28, 2025): At the same time, configuration needs to be added: ADMIN_API_KEY_ENABLE: true ADMIN_API_KEY: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Author
Owner

@crazywoola commented on GitHub (Aug 28, 2025):

Is this issue resolved?

@crazywoola commented on GitHub (Aug 28, 2025): Is this issue resolved?
Author
Owner

@18191518054 commented on GitHub (Aug 28, 2025):

Is this issue resolved?

no

@18191518054 commented on GitHub (Aug 28, 2025): > Is this issue resolved? no
Author
Owner

@crazywoola commented on GitHub (Aug 28, 2025):

Sorry, I didn't understand your question. Could you please rephrase it and clarify the expected outcome?

@crazywoola commented on GitHub (Aug 28, 2025): Sorry, I didn't understand your question. Could you please rephrase it and clarify the expected outcome?
Author
Owner

@18191518054 commented on GitHub (Aug 28, 2025):

Sorry, I didn't understand your question. Could you please rephrase it and clarify the expected outcome?

The API calls dify's chatflow using the "/console/app/installed apps/{installed-app_id}/chat messages" method, where the return value of eventstream does not have outputs that are null, but calling eventstream using the "/console/app/{appid}/advanced chat/workflows/draft/run" method returns the complete value.

@18191518054 commented on GitHub (Aug 28, 2025): > Sorry, I didn't understand your question. Could you please rephrase it and clarify the expected outcome? The API calls dify's chatflow using the "/console/app/installed apps/{installed-app_id}/chat messages" method, where the return value of eventstream does not have outputs that are null, but calling eventstream using the "/console/app/{appid}/advanced chat/workflows/draft/run" method returns the complete value.
Author
Owner

@crazywoola commented on GitHub (Aug 28, 2025):

@dosu Validate these 2 api endpoints to see whether they are using the same logic.

Sorry, I didn't understand your question. Could you please rephrase it and clarify the expected outcome?

The API calls dify's chatflow using the "/console/app/installed apps/{installed-app_id}/chat messages" method, where the return value of eventstream does not have outputs that are null, but calling eventstream using the "/console/app/{appid}/advanced chat/workflows/draft/run" method returns the complete value.

@crazywoola commented on GitHub (Aug 28, 2025): @dosu Validate these 2 api endpoints to see whether they are using the same logic. > > Sorry, I didn't understand your question. Could you please rephrase it and clarify the expected outcome? > > The API calls dify's chatflow using the "/console/app/installed apps/{installed-app_id}/chat messages" method, where the return value of eventstream does not have outputs that are null, but calling eventstream using the "/console/app/{appid}/advanced chat/workflows/draft/run" method returns the complete value.
Author
Owner

@dosubot[bot] commented on GitHub (Aug 28, 2025):

The two endpoints do not use exactly the same logic for authentication and user context, which directly affects the eventstream outputs.

The /console/app/{appid}/advanced chat/workflows/draft/run endpoint enforces strict user authentication and permission checks using Flask-Login decorators. It requires a valid session-based user (admin, owner, or editor) and passes this user context to the backend service that generates outputs. This ensures that outputs are always populated for authenticated users source.

The /console/api/installed-apps/{installed_app_id}/chat-messages endpoint is typically used from the web interface and also relies on Flask-Login's current_user for authentication. However, when you call this endpoint using only ADMIN_API_KEY, the current_user context may not be properly set, resulting in missing user information and null outputs source.

Both endpoints ultimately call the same backend service to generate outputs, but the presence or absence of a valid user context is the key difference. To get non-null outputs from the installed-apps endpoint, you need to ensure that a valid user context is established—using a session-based login, not just an API key. If you want API key-based access to work, you would need to extend the authentication logic to support creating a valid admin user context from the API key.

Let me know if you need details on how to patch or work around this in your deployment.

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other  Chat with Dosu Join Discord Share on X

@dosubot[bot] commented on GitHub (Aug 28, 2025): <!-- Answer --> The two endpoints do not use exactly the same logic for authentication and user context, which directly affects the eventstream outputs. The `/console/app/{appid}/advanced chat/workflows/draft/run` endpoint enforces strict user authentication and permission checks using Flask-Login decorators. It requires a valid session-based user (admin, owner, or editor) and passes this user context to the backend service that generates outputs. This ensures that outputs are always populated for authenticated users [source](https://github.com/langgenius/dify/blob/7c340695d60c4d7fa829fde65162e371b8bf45e8/api/controllers/console/app/workflow.py). The `/console/api/installed-apps/{installed_app_id}/chat-messages` endpoint is typically used from the web interface and also relies on Flask-Login's `current_user` for authentication. However, when you call this endpoint using only `ADMIN_API_KEY`, the `current_user` context may not be properly set, resulting in missing user information and null outputs [source](https://github.com/langgenius/dify/blob/7c340695d60c4d7fa829fde65162e371b8bf45e8/api/controllers/console/app/app.py). Both endpoints ultimately call the same backend service to generate outputs, but the presence or absence of a valid user context is the key difference. To get non-null outputs from the installed-apps endpoint, you need to ensure that a valid user context is established—using a session-based login, not just an API key. If you want API key-based access to work, you would need to extend the authentication logic to support creating a valid admin user context from the API key. Let me know if you need details on how to patch or work around this in your deployment. <!-- Dosu Comment Footer --> *To reply, just mention [@dosu](https://go.dosu.dev/dosubot).* --- <sup>How did I do? [Good](https://app.dosu.dev/response-feedback/1c4767a1-8c4b-4431-ba18-7106dc17d26e?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/1c4767a1-8c4b-4431-ba18-7106dc17d26e?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/1c4767a1-8c4b-4431-ba18-7106dc17d26e?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/1c4767a1-8c4b-4431-ba18-7106dc17d26e?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/1c4767a1-8c4b-4431-ba18-7106dc17d26e?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/1c4767a1-8c4b-4431-ba18-7106dc17d26e?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/1c4767a1-8c4b-4431-ba18-7106dc17d26e?feedback_type=other)</sup>&nbsp;&nbsp;[![Chat with Dosu](https://dosu.dev/dosu-chat-badge.svg)](https://app.dosu.dev/6088a4f4-073a-43f3-b3d4-4f06fb0c05a0/ask?utm_source=github)&nbsp;[![Join Discord](https://img.shields.io/badge/join-5865F2?logo=discord&logoColor=white&label=)](https://go.dosu.dev/discord-bot)&nbsp;[![Share on X](https://img.shields.io/badge/X-share-black)](https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/langgenius/dify/issues/24736)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify#16534