ClickAI Docs
ClickAI Docs Vn
ClickAI Docs Vn
  • Mở đầu
  • Cập nhật
    • 1.2025.1
  • Bắt đầu
    • Đăng ký tài khoản
    • Thiết lập cá nhân
  • Tính năng
    • Trợ lý AI
    • Sáng tạo
    • Cộng đồng
      • Hướng dẫn sử dụng cộng đồng
        • Bài viết
        • Khóa học
        • Sự kiện
        • Thành viên
          • Leaderboard
        • Mô tả cộng đồng
      • Tạo Cộng Đồng
        • Tạo About Page
        • Tạo Khóa Học
        • Tạo Leaderboard
        • Tạo Bot Store (Trợ lý cộng đồng)
        • AI Avatar
    • Học viện
    • Studio
      • Tạo Chatbot
      • Tạo ChatFlow
        • Các khái niệm chính
        • Biến số
        • Mô tả Node
          • Bắt Đầu
          • Trả Lời Trực Tiếp
          • Mô Hình Ngôn Ngữ Lớn (LLM)
          • Truy Xuất Kiến Thức
          • Phân Loại Câu Hỏi
          • Nhánh Điều Kiện IF/ELSE
          • Code
          • Mẫu
          • Trình Trích Xuất Tham Số
          • Toán Tử Danh Sách
          • Tập Hợp Biến
          • Gán Biến
          • Lặp Lại
          • Trích Xuất Tham Số
          • Yêu Cầu HTTP
          • Công Cụ
        • Phím tắt
        • Node điều phối
        • Tải tập tin lên
        • Các tính năng bổ sung
        • Gỡ lỗi và xem trước
          • Xem trước và chạy
          • Step Run
          • Run logs
          • Danh mục
          • Lịch sử chạy
        • Xuất bản ứng dụng
      • Tạo Agent
      • Tạo Workflow
  • Thanh toán
    • Thanh toán gói đăng ký
    • Nâng cấp
    • Thanh toán vào cộng đồng
    • Thanh toán khóa học
  • Chính sách
    • Quy chế hoạt động
    • Chính sách bảo mật
    • Tiêu chuẩn cộng đồng
    • Chính sách Giới thiệu người dùng
Powered by GitBook
On this page
  1. Tính năng
  2. Studio
  3. Tạo ChatFlow
  4. Mô tả Node

Code

PreviousNhánh Điều Kiện IF/ELSENextMẫu

Last updated 5 months ago

Mục Lục

1. Giới Thiệu

Node mã hỗ trợ chạy mã Python/NodeJS để thực hiện các phép biến đổi dữ liệu trong một workflow. Nó có thể đơn giản hóa workflow của bạn và phù hợp với các kịch bản như các phép toán số học, biến đổi JSON, xử lý văn bản, và nhiều hơn nữa.

Nút này tăng cường đáng kể tính linh hoạt cho các nhà phát triển, cho phép họ nhúng các script tùy chỉnh Python hoặc JavaScript vào trong workflow và xử lý các biến theo cách mà các nút đã cài đặt không thể đạt được. Thông qua các tùy chọn cấu hình, bạn có thể chỉ định các biến đầu vào và đầu ra cần thiết và viết mã thực thi tương ứng:

Cấu Hình

2. Kịch Bản Sử Dụng

Sử dụng nút mã, bạn có thể thực hiện các phép toán phổ biến sau:

1. Xử Lý Dữ Liệu Cấu Trúc

Trong các workflow, bạn thường phải xử lý dữ liệu không cấu trúc, chẳng hạn như phân tích, trích xuất, và biến đổi các chuỗi JSON. Một ví dụ điển hình là xử lý dữ liệu từ một nút HTTP. Trong các cấu trúc trả về API phổ biến, dữ liệu có thể được lồng bên trong nhiều lớp các đối tượng JSON, và bạn cần trích xuất một số trường cụ thể. Nút mã có thể giúp bạn thực hiện những hoạt động này. Dưới đây là một ví dụ đơn giản trích xuất trường data.name từ một chuỗi JSON trả về bởi một nút HTTP:

Python1def main(http_response: str) -> str:
2    import json
3    data = json.loads(http_response)
4    return {
5        # Lưu ý khai báo 'result' trong các biến đầu ra
6        'result': data['data']['name'] 
7    }

2. Tính Toán Toán Học

Khi bạn cần thực hiện các phép tính toán học phức tạp trong một workflow, bạn cũng có thể sử dụng nút mã. Ví dụ, tính toán một công thức toán học phức tạp hoặc thực hiện một số phân tích thống kê trên dữ liệu. Dưới đây là một ví dụ đơn giản tính toán phương sai của một mảng:

Python1def main(x: list) -> float:
2    return {
3        # Lưu ý khai báo 'result' trong các biến đầu ra
4        'result': sum([(i - sum(x) / len(x)) ** 2 for i in x]) / len(x)
5    }

3. Nối Dữ Liệu

Đôi khi, bạn có thể cần nối nhiều nguồn dữ liệu, chẳng hạn như nhiều truy vấn kiến thức, tìm kiếm dữ liệu, gọi API, v.v. Nút mã có thể giúp bạn tích hợp những nguồn dữ liệu này lại với nhau. Dưới đây là một ví dụ đơn giản hợp nhất dữ liệu từ hai cơ sở tri thức:

Python1def main(knowledge1: list, knowledge2: list) -> list:
2    return {
3        # Lưu ý khai báo 'result' trong các biến đầu ra
4        'result': knowledge1 + knowledge2
5    }

3. Triển Khai Tại Chỗ

Nếu bạn là người dùng triển khai tại chỗ, bạn cần khởi động dịch vụ sandbox để đảm bảo rằng mã độc hại không được thực thi. Dịch vụ này yêu cầu sử dụng Docker. Bạn có thể tìm thông tin cụ thể về dịch vụ sandbox tại đây. Bạn cũng có thể khởi động dịch vụ trực tiếp qua docker-compose:

Shell1docker-compose -f docker-compose.middleware.yaml up -d

4. Chính Sách Bảo Mật

Cả hai môi trường thực thi Python và JavaScript đều được cách ly nghiêm ngặt (sandboxed) để đảm bảo an toàn. Điều này có nghĩa là các nhà phát triển không thể sử dụng các chức năng tiêu tốn nhiều tài nguyên hệ thống hoặc có thể gây ra rủi ro bảo mật, chẳng hạn như truy cập trực tiếp vào hệ thống tệp, thực hiện các yêu cầu mạng, hoặc thực thi các lệnh cấp hệ điều hành. Những hạn chế này đảm bảo việc thực thi mã được thực hiện an toàn và tránh tiêu tốn tài nguyên hệ thống một cách quá mức.

FAQs

Tại sao tôi không thể lưu mã trong nút mã?

Vui lòng kiểm tra xem mã có chứa các hành vi nguy hiểm tiềm ẩn hay không. Ví dụ:

Python1def main() -> dict:
2    return {
3        "result": open("/etc/passwd").read(),
4    }

Đoạn mã này có các vấn đề sau:

  • Truy cập tệp không được phép: Mã cố gắng đọc tệp "/etc/passwd", một tệp hệ thống quan trọng trong các hệ thống Unix/Linux lưu trữ thông tin tài khoản người dùng.

  • Công bố thông tin nhạy cảm: Tệp "/etc/passwd" chứa thông tin quan trọng về người dùng hệ thống, chẳng hạn như tên người dùng, ID người dùng, ID nhóm, đường dẫn thư mục nhà, v.v. Truy cập trực tiếp có thể dẫn đến rò rỉ thông tin.

Mã nguy hiểm sẽ bị chặn tự động bởi Cloudflare WAF. Bạn có thể kiểm tra xem nó đã bị chặn hay chưa bằng cách nhìn vào tab "Mạng" trong "Công cụ Phát triển Web" của trình duyệt.

Nếu bạn cần sử dụng các biến từ các nút khác trong nút mã, bạn phải định danh tên biến trong các biến đầu vào và tham chiếu đến các biến này. Bạn có thể tham khảo .

Tham chiếu Biến
Giới Thiệu
Kịch Bản Sử Dụng
Triển Khai Tại Chỗ
Chính Sách Bảo Mật