mirror of
https://github.com/langflow-ai/langflow.git
synced 2026-07-24 16:12:19 +08:00
* fix: nightly now properly gets 1.9.0 branch (#12215) before it was attempting to pull release-notes as letters are alphanumerically after numbers when we sort -V then grab tail now we only look at branch names that follow the pattern '^release-[0-9]+\.[0-9]+\.[0-9]+$' * docs: add search icon (#12216) add-back-svg * initial-content * cut-1.8-release-and-include-next-version * stage-1.8.0-and-next --------- Co-authored-by: Adam-Aghili <149833988+Adam-Aghili@users.noreply.github.com>
159 lines
8.1 KiB
Plaintext
159 lines
8.1 KiB
Plaintext
---
|
|
title: Test flows in the Playground
|
|
slug: /concepts-playground
|
|
---
|
|
|
|
import Tabs from '@theme/Tabs';
|
|
import TabItem from '@theme/TabItem';
|
|
import Icon from "@site/src/components/icon";
|
|
|
|
Langflow's **Playground** is a dynamic interface you can use to test your LLM-based flows in real-time.
|
|
|
|
You can test how a flow responds to different inputs, review and modify memories, and monitor flow output and logic.
|
|
For example, you can make sure agent flows use the appropriate tools to respond to different inputs.
|
|
|
|
The **Playground** allows you to quickly iterate over your flow's logic and behavior, making it easier to prototype and refine your applications.
|
|
|
|
## Run a flow in the Playground
|
|
|
|
To run a flow in the **Playground**, open the flow, and then click <Icon name="Play" aria-hidden="true"/> **Playground**.
|
|
Then, if your flow has a [**Chat Input** component](/chat-input-and-output), enter a prompt or [use voice mode](/concepts-voice-mode) to trigger the flow and start a chat session.
|
|
|
|
To expand the **Playground** view, click <Icon name="Expand" aria-hidden="true"/> **Enter fullscreen** within the **Playground** panel.
|
|
|
|

|
|
|
|
:::tip
|
|
If there is no message input field in the **Playground**, make sure your flow has a **Chat Input** component that is connected, directly or indirectly, to the **Input** port of a **Language Model** or **Agent** component.
|
|
|
|
Because the **Playground** is designed for flows that use an LLM in a query-and-response format, such as chatbots and agents, a flow must have **Chat Input**, **Language Model**/**Agent**, and **Chat Output** components to be fully supported by the **Playground** chat interface
|
|
|
|
For flows that require another type of input, such as a webhook event, file upload, or text input, you can [use the Langflow API to trigger the flow](/api-flows-run), and then open the **Playground** to review the LLM activity for the flow run, if applicable.
|
|
:::
|
|
|
|

|
|
|
|
For technical details about how the **Playground** works, see [Monitor endpoints](/api-monitor).
|
|
|
|
### Review agent logic
|
|
|
|
If your flow has an **Agent** component, the **Playground** prints the tools used by the agent and the output from each tool.
|
|
This helps you monitor the agent's tool use and understand the logic behind the agent's responses.
|
|
For example, the following agent used a connected `fetch_content` tool to perform a web search:
|
|
|
|

|
|
|
|
### View chat history {#view-chat-history}
|
|
|
|
In the **Playground**, you can view message logs for each of your flow's chat sessions, including timestamps, content, and senders.
|
|
|
|
In the **Playground** sidebar, find the chat session you want to review, click <Icon name="Ellipsis" aria-hidden="true"/> **Options**, and then select **Message Logs**.
|
|
|
|

|
|
|
|
Message logs break apart the [`Message` data](/data-types#message) for each chat message.
|
|
Click any cell in the message logs to view the full contents of that cell.
|
|
|
|
### Modify memories in the Playground
|
|
|
|
To help debug and test your flows, you can edit or delete individual messages in [message logs](#view-chat-history).
|
|
For example, you might want to delete messages that you sent while testing a component that is no longer part of your flow.
|
|
|
|
You can also delete entire chat sessions from the sidebar: click <Icon name="Ellipsis" aria-hidden="true"/> **Options**, and then select **Delete**.
|
|
|
|
Modifying memories influences the behavior of the chatbot responses if you continue the chat session or if you preserve memories over multiple chat sessions.
|
|
|
|
**Editing message logs edits Langflow's internal `messages` table, which is the default chat memory storage.**
|
|
For more information about managing sessions and chat memory in Langflow, see [Use custom session IDs](#session-ids) and [Memory management options](/memory).
|
|
|
|
## Set custom session IDs {#session-ids}
|
|
|
|
Chat sessions are identified by session ID (`session_id`), which is a unique identifier for a flow run.
|
|
|
|
The default session ID is the flow ID, which means that all chat messages for a flow are stored under the same session ID as one enormous chat session.
|
|
|
|
If you need to preserve chat context over multiple flow runs or differentiate chat sessions when debugging flows, you can set a custom `session_id`.
|
|
|
|
Custom session IDs are helpful for multiple reasons:
|
|
|
|
* Separate chat sessions in situations where one flow has multiple chat sessions, such as a chatbot that can have multiple simultaneous user interactions.
|
|
* Preserve memory when continuing a chat session across multiple flow runs or when passing context from one flow to another.
|
|
* Differentiate activity from multiple users within the same flow.
|
|
* Identify your own chat sessions when debugging and testing flows.
|
|
|
|
You can set custom session IDs in the visual editor and programmatically.
|
|
|
|
<Tabs>
|
|
<TabItem value="visual" label="Visual editor" default>
|
|
|
|
In your [input and output components](/chat-input-and-output), use the **Session ID** field:
|
|
|
|
1. Click the component where you want to set a custom session ID.
|
|
2. In the [component inspection panel](/concepts-components#component-menus), enable **Session ID**.
|
|
3. Click **Close**.
|
|
4. Enter a custom session ID.
|
|
If the field is empty, the flow uses the default session ID.
|
|
5. Open the **Playground** to start a chat under your custom session ID.
|
|
|
|
Make sure to change the **Session ID** when you want to start a new chat session or continue an earlier chat session with a different session ID.
|
|
|
|
</TabItem>
|
|
<TabItem value="api" label="Langflow API">
|
|
|
|
When you trigger a flow with the Langflow API, include the `session_id` parameter in the request payload.
|
|
For example:
|
|
|
|
```bash
|
|
curl -X POST "http://$LANGFLOW_SERVER_ADDRESS/api/v1/run/$FLOW_ID" \
|
|
-H "Content-Type: application/json" \
|
|
-H "x-api-key: $LANGFLOW_API_KEY" \
|
|
-d '{
|
|
"session_id": "CUSTOM_SESSION_ID",
|
|
"input_value": "message",
|
|
"input_type": "chat",
|
|
"output_type": "chat"
|
|
}'
|
|
```
|
|
|
|
This command starts a new chat sessions with the specified `session_id` or it retrieves an existing session with that ID, if one exists.
|
|
|
|
</TabItem>
|
|
</Tabs>
|
|
|
|
:::tip
|
|
In a production environment, consider using a variable for the session ID rather than a hardcoded value.
|
|
|
|
For example, if you want to preserve context for authenticated users, user ID could be a useful variable for the session ID.
|
|
Alternatively, if you want every chat to be unique, you might want to automatically generate a UUID for each session ID.
|
|
:::
|
|
|
|
For more information, see [Use session ID to manage communication between components](/session-id).
|
|
|
|
## Share a flow's Playground
|
|
|
|
:::warning
|
|
The **Shareable Playground** is for testing purposes only.
|
|
The **Playground** isn't meant for embedding flows in applications. For information about running flows in applications or websites, see [Trigger flows with the Langflow API](/concepts-publish).
|
|
|
|
The **Shareable Playground** isn't available in Langflow Desktop.
|
|
:::
|
|
|
|
The **Shareable Playground** option exposes the **Playground** for a single flow at the `/public_flow/$FLOW_ID` endpoint.
|
|
|
|
After you [deploy a public Langflow server](/deployment-overview), you can share this public URL with another user to allow them to access the specified flow's **Playground** only.
|
|
The user can interact with the flow's chat input and output and view the results without installing Langflow or generating a Langflow API key.
|
|
|
|
To share a flow's **Playground** with another user, do the following:
|
|
|
|
1. In Langflow, open the flow you want share.
|
|
2. In the [workspace](/concepts-overview#workspace), click **Share**, and then enable **Shareable Playground**.
|
|
3. Click **Shareable Playground** again to open the **Playground** window.
|
|
This window's URL is the flow's **Shareable Playground** address, such as `https://3f7c-73-64-93-151.ngrok-free.app/playground/d764c4b8-5cec-4c0f-9de0-4b419b11901a`.
|
|
4. Send the URL to another user to give them access to the flow's **Playground**.
|
|
|
|
## See also
|
|
|
|
- [Upload images](/concepts-file-management#upload-images)
|
|
- [Use voice mode](/concepts-voice-mode)
|
|
- [Trigger flows with the Langflow API](/concepts-publish)
|
|
- [Session ID](/session-id) |