* feat: Enhance chat streaming and tool call processing - Added support for MongoDB checkpointer in the chat streaming workflow. - Introduced functions to process tool call chunks and sanitize arguments. - Improved event message creation with additional metadata. - Enhanced error handling for JSON serialization in event messages. - Updated the frontend to convert escaped characters in tool call arguments. - Refactored the workflow input preparation and initial message processing. - Added new dependencies for MongoDB integration and tool argument sanitization. * fix: Update MongoDB checkpointer configuration to use LANGGRAPH_CHECKPOINT_DB_URL * feat: Add support for Postgres checkpointing and update README with database recommendations * feat: Implement checkpoint saver functionality and update MongoDB connection handling * refactor: Improve code formatting and readability in app.py and json_utils.py * refactor: Clean up commented code and improve formatting in server.py * refactor: Remove unused imports and improve code organization in app.py * refactor: Improve code organization and remove unnecessary comments in app.py * chore: use langgraph-checkpoint-postgres==2.0.21 to avoid the JSON convert issue in the latest version, implement chat stream persistant with Postgres * feat: add MongoDB and PostgreSQL support for LangGraph checkpointing, enhance environment variable handling * fix: update comments for clarity on Windows event loop policy * chore: remove empty code changes in MongoDB and PostgreSQL checkpoint tests * chore: clean up unused imports and code in checkpoint-related files * chore: remove empty code changes in test_checkpoint.py * chore: remove empty code changes in test_checkpoint.py * chore: remove empty code changes in test_checkpoint.py * test: update status code assertions in MCP endpoint tests to allow for 403 responses * test: update MCP endpoint tests to assert specific status codes and enable MCP server configuration * chore: remove unnecessary environment variables from unittest workflow * fix: invert condition for MCP server configuration check to raise 403 when disabled * chore: remove pymongo from test dependencies in uv.lock * chore: optimize the _get_agent_name method * test: enhance ChatStreamManager tests for PostgreSQL and MongoDB initialization * test: add persistence tests for ChatStreamManager with PostgreSQL and MongoDB * test: add unit tests for ChatStreamManager initialization with PostgreSQL and MongoDB * test: enhance persistence tests for ChatStreamManager with PostgreSQL and MongoDB to verify message aggregation * test: add unit tests for ChatStreamManager with PostgreSQL and MongoDB * test: add unit tests for ChatStreamManager initialization with PostgreSQL and MongoDB * test: add unit tests for ChatStreamManager initialization with PostgreSQL and MongoDB --------- Co-authored-by: Willem Jiang <willem.jiang@gmail.com>
🦌 DeerFlow Web UI
Originated from Open Source, give back to Open Source.
This is the web UI for DeerFlow.
Quick Start
Prerequisites
DeerFlow- Node.js (v22.14.0+)
- pnpm (v10.6.2+) as package manager
Configuration
Create a .env file in the project root and configure the following environment variables:
NEXT_PUBLIC_API_URL: The URL of the deer-flow API.
It's always a good idea to start with the given example file, and edit the .env file with your own values:
cp .env.example .env
How to Install
DeerFlow Web UI uses pnpm as its package manager.
To install the dependencies, run:
cd web
pnpm install
How to Run in Development Mode
Note
Ensure the Python API service is running before starting the web UI.
Start the web UI development server:
cd web
pnpm dev
By default, the web UI will be available at http://localhost:3000.
You can set the NEXT_PUBLIC_API_URL environment variable if you're using a different host or location.
# .env
NEXT_PUBLIC_API_URL=http://localhost:8000/api
Docker
You can also run this project with Docker.
First, you need read the configuration below. Make sure .env file is ready.
Second, to build a Docker image of your own web server:
docker build --build-arg NEXT_PUBLIC_API_URL=YOUR_DEER-FLOW_API -t deer-flow-web .
Final, start up a docker container running the web server:
# Replace deer-flow-web-app with your preferred container name
docker run -d -t -p 3000:3000 --env-file .env --name deer-flow-web-app deer-flow-web
# stop the server
docker stop deer-flow-web-app
Docker Compose
You can also setup this project with the docker compose:
# building docker image
docker compose build
# start the server
docker compose up
License
This project is open source and available under the MIT License.
Acknowledgments
We extend our heartfelt gratitude to the open source community for their invaluable contributions. DeerFlow is built upon the foundation of these outstanding projects:
In particular, we want to express our deep appreciation for:
- Next.js for their exceptional framework
- Shadcn for their minimalistic components that powers our UI
- Zustand for their stunning state management
- Framer Motion for their amazing animation library
- React Markdown for their exceptional markdown rendering and customizability
- Last but not least, special thanks to SToneX for his great contribution for token-by-token visual effect
These outstanding projects form the backbone of DeerFlow and exemplify the transformative power of open source collaboration.