Monitor endpoints
/monitor
端点用于 Langflow 的内部功能,主要与在 Playground 中运行流程、存储聊天历史记录和生成流程日志相关。
此信息主要面向那些正在构建自定义组件或以需要调用或理解这些端点的方式为 Langflow 代码库做贡献的人员。
对于使用 Langflow 的典型应用程序开发,有更适合的选项用于监控、调试和内存管理。 有关更多信息,请参阅以下内容:
- 日志:Langflow 日志存储位置、自定义选项以及在可视化编辑器中查看日志的位置
- 在 Playground 中测试流程:运行流程并检查消息历史记录
- 内存管理选项:Langflow 存储位置和选项,包括数据库、缓存和聊天历史记录
Vertex 构建
Vertex 构建端点 (/monitor/builds
) 专用于 Playground 功能。
当您在 Playground 中运行流程时,Langflow 会调用 chat.py 中的 /build/$FLOW_ID/flow
端点。此调用检索流程数据,构建图形并执行该图形。随着每个组件(或节点)的执行,build_vertex
函数会调用 build_and_run
,如果存在的话,可能会调用各个组件的 def_build
方法。如果组件没有 def_build
函数,构建仍然会返回一个组件。
build
函数允许组件在运行时执行逻辑。例如,Recursive Character Text Splitter 组件 是 LCTextSplitterComponent
类的子类。当需要处理文本时,会调用父类的 build
方法,该方法创建一个 RecursiveCharacterTextSplitter
对象,并根据定义的参数使用它来分割文本。分割后的文本随后传递给下一个组件。所有这些都在组件构建时发生。
获取 Vertex 构建
检索特定流程的 Vertex 构建。
_372curl -X GET \_372 "$LANGFLOW_URL/api/v1/monitor/builds?flow_id=$FLOW_ID" \_372 -H "accept: application/json" \_372 -H "x-api-key: $LANGFLOW_API_KEY"_372```<details>_372<summary>结果</summary>```json_372{_372 "vertex_builds": {_372 "ChatInput-NCmix": [_372 {_372 "data": {_372 "results": {_372 "message": {_372 "text_key": "text",_372 "data": {_372 "timestamp": "2024-12-23 19:10:57",_372 "sender": "用户",_372 "sender_name": "用户",_372 "session_id": "01ce083d-748b-4b8d-97b6-33adbb6a528a",_372 "text": "Hello",_372 "files": [],_372 "error": "False",_372 "edit": "False",_372 "properties": {_372 "text_color": "",_372 "background_color": "",_372 "edited": "False",_372 "source": {_372 "id": "None",_372 "display_name": "None",_372 "source": "None"_372 },_372 "icon": "",_372 "allow_markdown": "False",_372 "positive_feedback": "None",_372 "state": "complete",_372 "targets": []_372 },_372 "category": "message",_372 "content_blocks": [],_372 "id": "c95bed34-f906-4aa6-84e4-68553f6db772",_372 "flow_id": "01ce083d-748b-4b8d-97b6-33adbb6a528a"_372 },_372 "default_value": "",_372 "text": "Hello",_372 "sender": "用户",_372 "sender_name": "用户",_372 "files": [],_372 "session_id": "01ce083d-748b-4b8d-97b6-33adbb6a528a",_372 "timestamp": "2024-12-23 19:10:57+00:00",_372 "flow_id": "01ce083d-748b-4b8d-97b6-33adbb6a528a",_372 "error": "False",_372 "edit": "False",_372 "properties": {_372 "text_color": "",_372 "background_color": "",_372 "edited": "False",_372 "source": {_372 "id": "None",_372 "display_name": "None",_372 "source": "None"_372 },_372 "icon": "",_372 "allow_markdown": "False",_372 "positive_feedback": "None",_372 "state": "complete",_372 "targets": []_372 },_372 "category": "message",_372 "content_blocks": []_372 }_372 },_372 "outputs": {_372 "message": {_372 "message": {_372 "timestamp": "2024-12-23T19:10:57",_372 "sender": "用户",_372 "sender_name": "用户",_372 "session_id": "01ce083d-748b-4b8d-97b6-33adbb6a528a",_372 "text": "Hello",_372 "files": [],_372 "error": false,_372 "edit": false,_372 "properties": {_372 "text_color": "",_372 "background_color": "",_372 "edited": false,_372 "source": {_372 "id": null,_372 "display_name": null,_372 "source": null_372 },_372 "icon": "",_372 "allow_markdown": false,_372 "positive_feedback": null,_372 "state": "complete",_372 "targets": []_372 },_372 "category": "message",_372 "content_blocks": [],_372 "id": "c95bed34-f906-4aa6-84e4-68553f6db772",_372 "flow_id": "01ce083d-748b-4b8d-97b6-33adbb6a528a"_372 },_372 "type": "object"_372 }_372 },_372 "logs": { "message": [] },_372 "message": {_372 "message": "Hello",_372 "sender": "用户",_372 "sender_name": "用户",_372 "files": [],_372 "type": "object"_372 },_372 "artifacts": {_372 "message": "Hello",_372 "sender": "用户",_372 "sender_name": "用户",_372 "files": [],_372 "type": "object"_372 },_372 "timedelta": 0.015060124918818474,_372 "duration": "15 ms",_372 "used_frozen_result": false_372 },_372 "artifacts": {_372 "message": "Hello",_372 "sender": "用户",_372 "sender_name": "用户",_372 "files": [],_372 "type": "object"_372 },_372 "params": "- Files: []\n Message: Hello\n Sender: 用户\n Sender Name: 用户\n Type: object\n",_372 "valid": true,_372 "build_id": "40aa200e-74db-4651-b698-f80301d2b26b",_372 "id": "ChatInput-NCmix",_372 "timestamp": "2024-12-23T19:10:58.772766Z",_372 "flow_id": "01ce083d-748b-4b8d-97b6-33adbb6a528a"_372 }_372 ],_372 "Prompt-BEn9c": [_372 {_372 "data": {_372 "results": {},_372 "outputs": {_372 "prompt": {_372 "message": "以GenAI专家的身份回答用户,热情地帮助他们开始构建一些新鲜的东西。",_372 "type": "text"_372 }_372 },_372 "logs": { "prompt": [] },_372 "message": {_372 "prompt": {_372```"repr": "以GenAI专家的身份回答用户,热情地帮 助他们开始构建一些新鲜的东西。",_372 "raw": "以GenAI专家的身份回答用户,热情地帮助他们开始构建一些新鲜的东西。",_372 "type": "text"_372 }_372 },_372 "artifacts": {_372 "prompt": {_372 "repr": "以GenAI专家的身份回答用户,热情地帮助他们开始构建一些新鲜的东西。",_372 "raw": "以GenAI专家的身份回答用户,热情地帮助他们开始构建一些新鲜的东西。",_372 "type": "text"_372 }_372 },_372 "timedelta": 0.0057758750626817346,_372 "duration": "6 ms",_372 "used_frozen_result": false_372 },_372 "artifacts": {_372 "prompt": {_372 "repr": "以GenAI专家的身份回答用户,热情地帮助他们开始构建一些新鲜的东西。",_372 "raw": "以GenAI专家的身份回答用户,热情地帮助他们开始构建一些新鲜的东西。",_372 "type": "text"_372 }_372 },_372 "params": "None",_372 "valid": true,_372 "build_id": "39bbbfde-97fd-42a5-a9ed-d42a5c5d532b",_372 "id": "Prompt-BEn9c",_372 "timestamp": "2024-12-23T19:10:58.781019Z",_372 "flow_id": "01ce083d-748b-4b8d-97b6-33adbb6a528a"_372 }_372 ],_372 "OpenAIModel-7AjrN": [_372 {_372 "data": {_372 "results": {},_372 "outputs": {_372 "text_output": {_372 "message": "你好!🌟 很高兴能帮助你开启构建新事物的旅程!你有什么想法吗?无论是一个项目、一个想法还是一个概念,让我们一起深入其中,让它成为现实!",_372 "type": "text"_372 },_372 "model_output": { "message": "", "type": "unknown" }_372 },_372 "logs": { "text_output": [] },_372 "message": {_372 "text_output": {_372 "repr": "你好!🌟 很高兴能帮助你开启构建新事物的旅程!你有什么想法吗?无论是一个项目、一个想法还是一个概念,让我们一起深入其中,让它成为现实!",_372 "raw": "你好!🌟 很高兴能帮助你开启构建新事物的旅程!你有什么想法吗?无论是一个项目、一个想法还是一个概念,让我们一起深入其中,让它成为现实!",_372 "type": "text"_372 }_372 },_372 "artifacts": {_372 "text_output": {_372 "repr": "你好!🌟 很高兴能帮助你开启构建新事物的旅程!你有什么想法吗?无论是一个项目、一个想法还是一个概念,让我们一起深入其中,让它成为现实!",_372 "raw": "你好!🌟 很高兴能帮助你开启构建新事物的旅程!你有什么想法吗?无论是一个项目、一个想法还是一个概念,让我们一起深入其中,让它成为现实!",_372 "type": "text"_372 }_372 },_372 "timedelta": 1.034765167045407,_372 "duration": "1.03 seconds",_372 "used_frozen_result": false_372 },_372 "artifacts": {_372 "text_output": {_372 "repr": "你好!🌟 很高兴能帮助你开启构建新事物的旅程!你有什么想法吗?无论是一个项目、一个想法还是一个概念,让我们一起深入其中,让它成为现实!",_372 "raw": "你好!🌟 很高兴能帮助你开启构建新事物的旅程!你有什么想法吗?无论是一个项目、一个想法还是一个概念,让我们一起深入其中,让它成为现实!",_372 "type": "text"_372 }_372 },_372 "params": "None",_372 "valid": true,_372 "build_id": "4f0ae730-a266-4d35-b89f-7b825c620a0f",_372 "id": "OpenAIModel-7AjrN",_372 "timestamp": "2024-12-23T19:10:58.790484Z",_372 "flow_id": "01ce083d-748b-4b8d-97b6-33adbb6a528a"_372 }_372 ],_372 "ChatOutput-sfUhT": [_372 {_372 "data": {_372 "results": {_372 "message": {_372 "text_key": "text",_372 "data": {_372 "timestamp": "2024-12-23 19:10:58",_372 "sender": "机器",_372 "sender_name": "AI",_372 "session_id": "01ce083d-748b-4b8d-97b6-33adbb6a528a",_372 "text": "你好!🌟 很高兴能帮助你开启构建新事物的旅程!你有什么想法吗?无论是一个项目、一个想法还是一个概念,让我们一起深入其中,让它成为现实!",_372 "files": [],_372 "error": "False",_372 "edit": "False",_372 "properties": {_372 "text_color": "",_372 "background_color": "",_372 "edited": "False",_372 "source": {_372 "id": "OpenAIModel-7AjrN",_372 "display_name": "OpenAI","source": "gpt-4o-mini"_372 },_372 "icon": "OpenAI",_372 "allow_markdown": "False",_372 "positive_feedback": "None",_372 "state": "complete",_372 "targets": []_372 },_372 "category": "message",_372 "content_blocks": [],_372 "id": "5688356d-9f30-40ca-9907-79a7a2fc16fd",_372 "flow_id": "01ce083d-748b-4b8d-97b6-33adbb6a528a"_372 },_372 "default_value": "",_372 "text": "你好!🌟 很高兴能帮助你开启构建新事物的旅程!你有什么想法吗?无论是项目、想法还是概念,让我们一起深入其中,让它成为现实!",_372 "sender": "Machine",_372 "sender_name": "AI",_372 "files": [],_372 "session_id": "01ce083d-748b-4b8d-97b6-33adbb6a528a",_372 "timestamp": "2024-12-23 19:10:58+00:00",_372 "flow_id": "01ce083d-748b-4b8d-97b6-33adbb6a528a",_372 "error": "False",_372 "edit": "False",_372 "properties": {_372 "text_color": "",_372 "background_color": "",_372 "edited": "False",_372 "source": {_372 "id": "OpenAIModel-7AjrN",_372 "display_name": "OpenAI",_372 "source": "gpt-4o-mini"_372 },_372 "icon": "OpenAI",_372 "allow_markdown": "False",_372 "positive_feedback": "None",_372 "state": "complete",_372 "targets": []_372 },_372 "category": "message",_372 "content_blocks": []_372 }_372 },_372 "outputs": {_372 "message": {_372 "message": {_372 "timestamp": "2024-12-23T19:10:58",_372 "sender": "Machine",_372 "sender_name": "AI",_372 "session_id": "01ce083d-748b-4b8d-97b6-33adbb6a528a",_372 "text": "你好!🌟 很高兴能帮助你开启构建新事物的旅程!你有什么想法吗?无论是项目、想法还是概念,让我们一起深入其中,让它成为现实!",_372 "files": [],_372 "error": false,_372 "edit": false,_372 "properties": {_372 "text_color": "",_372 "background_color": "",_372 "edited": false,_372 "source": {_372 "id": "OpenAIModel-7AjrN",_372 "display_name": "OpenAI",_372 "source": "gpt-4o-mini"_372 },_372 "icon": "OpenAI",_372 "allow_markdown": false,_372 "positive_feedback": null,_372 "state": "complete",_372 "targets": []_372 },_372 "category": "message",_372 "content_blocks": [],_372 "id": "5688356d-9f30-40ca-9907-79a7a2fc16fd",_372 "flow_id": "01ce083d-748b-4b8d-97b6-33adbb6a528a"_372 },_372 "type": "object"_372 }_372 },_372 "logs": { "message": [] },_372 "message": {_372 "message": "你好!🌟 很高兴能帮助你开启构建新事物的旅程!你有什么想法吗?无论是项目、想法还是概念,让我们一起深入其中,让它成为现实!",_372 "sender": "Machine",_372 "sender_name": "AI",_372 "files": [],_372 "type": "object"_372 },_372 "artifacts": {_372 "message": "你好!🌟 很高兴能帮助你开启构建新事物的旅程!你有什么想法吗?无论是项目、想法还是概念,让我们一起深入其中,让它成为现实!",_372 "sender": "Machine",_372 "sender_name": "AI",_372 "files": [],_372 "type": "object"_372 },_372 "timedelta": 0.017838125000707805,_372 "duration": "18 ms",_372 "used_frozen_result": false_372 },_372 "artifacts": {_372 "message": "你好!🌟 很高兴能帮助你开启构建新事物的旅程!你有什么想法吗?无论是项目、想法还是概念,让我们一起深入其中,让它成为现实!",_372 "sender": "Machine",_372 "sender_name": "AI",_372 "files": [],_372 "type": "object"_372 },_372 "params": "- Files: []\n Message: 你好!🌟 很高兴能帮助你开启构建新事物的旅程!你有什么想法吗?无论是项目、想法还是概念,让我们一起深入其中,让它成为现实!\n Sender: Machine\n Sender Name: AI\n Type: object\n",_372 "valid": true,_372 "build_id": "1e8b908b-aba7-403b-9e9b-eca92bb78668",_372 "id": "ChatOutput-sfUhT",_372 "timestamp": "2024-12-23T19:10:58.813268Z",_372 "flow_id": "01ce083d-748b-4b8d-97b6-33adbb6a528a"_372 }_372 ]_372 }_372}</details>_372_372### 删除 Vertex 构建版本_372_372删除特定流程的 Vertex 构建版本。_372_372```bash_372curl -X DELETE \_372 "$LANGFLOW_URL/api/v1/monitor/builds?flow_id=$FLOW_ID" \_372 -H "accept: */*" \_372 -H "x-api-key: $LANGFLOW_API_KEY"
结果
_10204 No Content
消息端点
/monitor/messages
端点在 langflow.db
的消息表中存储、检索、编辑和删除记录。通常,当运行产生消息历史的流程时,或者在检查和修改 Playground 记忆时会隐式调用这些端点。