Nếu bạn muốn xây dựng ứng dụng LLM hoặc tác nhân AI mà không phải tự nối từng thành phần bằng Python, Flowise là một lựa chọn low-code, mã nguồn mở. Bạn kéo thả node, nối chúng trên canvas, lưu luồng và gọi luồng đó qua REST API. Bài viết này hướng dẫn cách dùng Flowise ở mức triển khai: chọn Chatflow, Agentflow hoặc Assistant, chạy Flowise bằng npm/Docker, gọi endpoint dự đoán và kiểm thử các API mà luồng phụ thuộc vào. Nếu bạn đã đọc bài về LangGraph, Flowise nằm ở hướng ngược lại: ưu tiên giao diện trực quan thay vì code-first. Mã nguồn có trong README của dự án trên GitHub.
Flowise là gì
Flowise là nền tảng phát triển AI tạo sinh mã nguồn mở để xây dựng tác nhân AI và workflow LLM. Dự án dùng giấy phép Apache 2.0, nên bạn có thể chạy local, tự host hoặc fork để tùy biến.
Cốt lõi của Flowise là canvas dựa trên node. Mỗi node đại diện cho một thành phần trong pipeline AI, ví dụ:
- Chat model
- Document loader
- Vector store
- Retriever
- Memory
- Tool
- Custom function
Bạn kéo node vào canvas, nối output với input, sau đó Flowise dùng các kết nối đó để xác định luồng dữ liệu. Khi lưu xong, Flowise expose workflow dưới dạng REST API để ứng dụng khác gọi.
Về bản chất, Flowise kết nối các thành phần từ LangChain và LlamaIndex. Nếu bạn đã quen với chains, agents, vector stores, retrievers hoặc query engines, các node trong Flowise sẽ khá dễ hiểu. Khác biệt chính là bạn lắp ráp bằng UI thay vì import class và viết code khởi tạo.
Chatflows, Agentflows và Assistants
Flowise có ba kiểu builder. Chọn đúng kiểu ngay từ đầu giúp bạn tránh phải thiết kế lại luồng.
| Loại builder | Dùng khi nào | Phạm vi |
|---|---|---|
| Assistant | Tạo trợ lý nhanh, có instruction, dùng tool và RAG trên file upload | Hẹp nhất, được hướng dẫn nhiều nhất |
| Chatflow | Chatbot, RAG, pipeline LLM đơn giản, hệ thống tác nhân đơn | Tác nhân đơn |
| Agentflow | Hệ thống đa tác nhân, workflow có phân nhánh, lặp, định tuyến | Rộng nhất; là tập hợp lớn hơn Chatflow và Assistant |
Khi nào dùng Chatflow
Dùng Chatflow khi luồng của bạn có dạng tuyến tính hoặc tương đối đơn giản:
- Nhận câu hỏi từ người dùng.
- Truy xuất context từ tài liệu.
- Gọi LLM.
- Trả về câu trả lời.
Chatflow phù hợp cho chatbot nội bộ, trợ lý RAG và các demo LLM cần triển khai nhanh.
Khi nào dùng Agentflow
Dùng Agentflow khi bạn cần điều phối phức tạp hơn:
- Nhiều tác nhân phối hợp với nhau
- Routing theo điều kiện
- Branching
- Loop
- Human-in-the-loop
- Workflow nhiều bước
Nếu thiết kế của bạn có nhiều agent giao việc cho nhau, Agentflow là lựa chọn đúng.
Khi nào dùng Assistant
Dùng Assistant khi bạn muốn tạo trợ lý nhanh mà không cần thiết kế graph chi tiết. Bạn cấu hình instruction, gắn tool, upload file để truy xuất và kiểm thử ngay trong UI.
Tạo một luồng cơ bản trên canvas
Một Chatflow RAG đơn giản trong Flowise thường gồm các bước sau:
- Tạo Chatflow mới.
- Thêm node chat model và chọn provider, ví dụ OpenAI, Anthropic hoặc model local.
- Thêm document loader nếu bạn cần nạp tài liệu.
- Thêm text splitter nếu tài liệu cần được chia nhỏ.
- Thêm embedding model.
- Thêm vector store.
- Thêm retriever.
- Nối retriever vào chain hoặc prompt node.
- Thêm memory nếu chatbot cần nhớ lịch sử hội thoại.
- Lưu luồng và kiểm thử bằng chat panel tích hợp.
Ví dụ cấu trúc luồng RAG:
User Question
↓
Retriever
↓
Relevant Context
↓
Prompt Template
↓
Chat Model
↓
Answer
Flowise cũng hỗ trợ expression, custom code node, branching, loop và routing. Khi không có node sẵn cho use case của bạn, bạn có thể viết custom function nhỏ và giữ phần còn lại của workflow ở dạng trực quan.
Chạy Flowise bằng npm hoặc Docker
Flowise chạy như một ứng dụng Node.js, mặc định trên port 3000.
Cách nhanh nhất để chạy local:
npm install -g flowise
npx flowise start
# mở trình duyệt tại:
# http://localhost:3000
Nếu muốn chạy bằng Docker:
docker run -d \
--name flowise \
-p 3000:3000 \
flowiseai/flowise
Sau khi container chạy, truy cập:
http://localhost:3000
Flowise cũng hỗ trợ tự host và triển khai air-gapped. Điều này hữu ích khi dữ liệu hoặc tài liệu nội bộ không được phép rời khỏi mạng riêng.
Gọi endpoint dự đoán REST của Flowise
Sau khi lưu một Chatflow hoặc Agentflow, Flowise tạo endpoint dự đoán riêng cho luồng đó. Tài liệu chính thức có tại Flowise Prediction API.
Endpoint có dạng:
POST /api/v1/prediction/{id}
Trong đó {id} là ID của luồng.
Một request tối thiểu bằng curl:
curl -X POST http://localhost:3000/api/v1/prediction/<flow-id> \
-H "Content-Type: application/json" \
-d '{
"question": "What are your store hours?"
}'
Ví dụ nếu Flowise chạy ở local và flow ID là abc123:
curl -X POST http://localhost:3000/api/v1/prediction/abc123 \
-H "Content-Type: application/json" \
-d '{
"question": "Tóm tắt tài liệu onboarding cho nhân viên mới"
}'
Body request có thể chứa nhiều trường hơn ngoài question, ví dụ:
{
"question": "Tóm tắt chính sách hoàn tiền",
"streaming": false,
"history": [
{
"role": "user",
"content": "Tôi cần hỗ trợ về đơn hàng"
},
{
"role": "assistant",
"content": "Bạn muốn kiểm tra trạng thái đơn hàng hay chính sách hoàn tiền?"
}
],
"overrideConfig": {
"sessionId": "user-123"
}
}
Flowise cũng hỗ trợ:
-
streamingđể stream token -
overrideConfigđể ghi đè cấu hình theo request -
historyđể truyền lịch sử hội thoại -
uploadscho ảnh hoặc âm thanh
Khi bật streaming, Flowise phát các event như:
start
token
metadata
end
Endpoint này là contract giữa Flowise và phần còn lại của hệ thống. Frontend, backend hoặc service khác đều nên gọi luồng thông qua endpoint này thay vì phụ thuộc vào UI của Flowise.
Khi nào dùng Flowise, khi nào nên code-first
Flowise phù hợp khi bạn cần:
- Prototype nhanh
- Demo chatbot hoặc RAG
- Workflow dễ đọc cho cả team
- Luồng AI có thể chỉnh bằng UI
- Tốc độ thử nghiệm cao
- Tự host pipeline LLM
Các framework code-first phù hợp hơn khi bạn cần:
- Version control chi tiết trong Git
- Unit test cho từng bước logic
- State machine phức tạp
- Custom tool calling sâu
- Kiểm soát chặt dependency và runtime
Ví dụ, nếu bạn cần kiểm soát graph logic ở mức code, LangGraph hoặc Bộ công cụ phát triển tác nhân của Google sẽ linh hoạt hơn. Nếu agent phụ thuộc nhiều vào tool tùy chỉnh, OpenAI Agents SDK cũng là lựa chọn đáng cân nhắc.
Cách thực tế nhiều team dùng là:
- Prototype trong Flowise.
- Kiểm thử luồng qua REST API.
- Nếu yêu cầu ổn định và cần kiểm soát sâu, chuyển phần logic quan trọng sang code.
- Giữ Flowise cho các workflow cần lặp nhanh hoặc dễ chỉnh bởi nhiều vai trò trong team.
Kiểm thử endpoint dự đoán và API mà luồng gọi
Một agent Flowise chỉ đáng tin cậy khi các API đằng sau nó đáng tin cậy. Luồng thường gọi:
- API của LLM provider
- Vector database
- Internal REST API
- Third-party tools
- Endpoint tìm kiếm hoặc truy xuất dữ liệu
Bạn nên kiểm thử ở hai lớp.
1. Kiểm thử endpoint dự đoán của Flowise
Xem endpoint này như một REST API bình thường:
POST /api/v1/prediction/{id}
Trong Apidog, tạo request với body:
{
"question": "Chính sách hoàn tiền là gì?"
}
Sau đó thêm assertion để kiểm tra response. Ví dụ:
- Response status là
200 - Response có field chứa câu trả lời
- Response không rỗng
- Response có metadata nếu luồng yêu cầu
- Thời gian phản hồi nằm trong ngưỡng chấp nhận
Bạn có thể dùng API assertions để phát hiện sớm khi thay đổi canvas làm hỏng contract với ứng dụng.
2. Kiểm thử các API mà Flowise gọi bên trong
Nếu luồng gọi API nội bộ, hãy test trực tiếp các API đó. Ví dụ:
GET /api/products/{id}
GET /api/orders/{id}
POST /api/search
Với mỗi API, bạn nên có test cho:
- Response schema
- Error case
- Timeout
- Empty result
- Authentication
- Rate limit hoặc fallback behavior
Nếu đang phát triển với LLM và không muốn tốn token hoặc bị rate limit, bạn có thể dùng mock API để trả về response cố định.
Ví dụ mock response cho LLM:
{
"answer": "Đây là phản hồi giả lập dùng cho môi trường test.",
"sources": [
{
"title": "refund-policy.md",
"score": 0.91
}
]
}
Cách này giúp test có tính xác định hơn. Bạn không phụ thuộc vào biến động từ model thật, token cost hoặc lỗi tạm thời của provider.
Nếu muốn xây dựng test harness đầy đủ cho agent, bạn có thể tham khảo hướng dẫn về công cụ kiểm thử tác nhân AI.
3. Tách môi trường dev, staging và production
Một workflow thực tế nên có biến môi trường riêng cho từng môi trường:
DEV_LLM_API_KEY
STAGING_LLM_API_KEY
PROD_LLM_API_KEY
Trong Apidog, bạn có thể lưu khóa provider theo môi trường. Luồng dev dùng khóa test, production dùng khóa thật, không cần sửa request hoặc code. Bạn có thể tải xuống Apidog và thiết lập các environment này trong vài phút.
Các câu hỏi thường gặp
Flowise có miễn phí và mã nguồn mở không?
Có. Flowise là mã nguồn mở theo giấy phép Apache 2.0. Bạn có thể chạy miễn phí bằng npm hoặc Docker. Flowise cũng có tùy chọn cloud nếu bạn không muốn tự quản lý hạ tầng. Với môi trường riêng tư hoặc air-gapped, tự host giúp giữ dữ liệu trong mạng nội bộ.
Flowise có sử dụng LangChain không?
Flowise kết nối các thành phần từ cả LangChain và LlamaIndex. Các node trên canvas ánh xạ tới những khái niệm quen thuộc như chains, agents, vector stores, retrievers và query engines. Bạn dùng các building block tương tự nhưng không cần tự viết toàn bộ mã kết nối.
Chatflow khác Agentflow ở điểm nào?
Chatflow phù hợp cho chatbot, RAG và pipeline LLM đơn giản với một tác nhân. Agentflow là lớp rộng hơn, dùng cho hệ thống đa tác nhân, branching, loop và routing. Hãy bắt đầu bằng Chatflow nếu bạn chỉ cần một trợ lý đơn giản. Chuyển sang Agentflow khi nhiều tác nhân cần phối hợp.
Làm cách nào để kiểm tra API của luồng Flowise?
Gọi endpoint:
POST /api/v1/prediction/{id}
với body JSON chứa question.
Bạn có thể dùng curl, SDK chính thức hoặc công cụ API testing. Trong Apidog, bạn gửi request, thêm assertion cho response, mock các API LLM hoặc tool mà luồng gọi, rồi chạy test trong CI. Nếu cần kiểm thử xác thực và streaming cho endpoint LLM, xem hướng dẫn kiểm thử API ChatGPT với Apidog.
Tóm tắt
Flowise là cách low-code để xây dựng ứng dụng LLM và tác nhân AI. Bạn thiết kế workflow trên canvas node, chọn Chatflow, Agentflow hoặc Assistant, sau đó expose luồng dưới dạng REST API. Nó rất phù hợp cho prototype, chatbot nội bộ và RAG workflow dễ đọc. Với logic phức tạp hoặc cần kiểm soát sâu, code-first vẫn có lợi thế.
Dù chọn hướng nào, hãy kiểm thử endpoint dự đoán POST /api/v1/prediction/{id} và các API mà luồng phụ thuộc vào. Mock LLM hoặc tool API khi cần test ổn định. Khi contract API được kiểm soát tốt, agent trên canvas sẽ có cơ hội hoạt động nhất quán hơn trong production.

Top comments (0)