Tạo bài viết SEO bằng quy trình làm việc của Dify [Cập nhật tháng 6 năm 2024]

Thực ra, trước đây tôi đã thử tạo bài viết SEO bằng Dify. Bạn có thể đọc về trải nghiệm đó trong bài viết “Thử tạo bài viết SEO với Dify.” Tuy nhiên, tôi đã từ bỏ việc tạo bài viết thông qua quy trình làm việc và sử dụng một agent thay thế. Lý do là vì quy trình làm việc lúc đó không có Iteration (xử lý lặp).

Tuy nhiên, Dify phiên bản v0.6.9 đã được phát hành vào ngày 31 tháng 5 năm 2024, và Iteration đã được triển khai! Tôi ngay lập tức thử tạo bài viết SEO bằng Iteration. Kết quả là tôi đã có thể làm được, nhưng liệu nó có đạt đến mức độ thực tiễn hay không… thì cũng còn phải xem xét.

Tuy nhiên, tôi tin rằng qua bài viết này, tôi có thể truyền tải cách sử dụng Iteration, vì vậy hãy xem qua nhé! Thực ra, hệ thống mà tôi đã cố gắng thực hiện bằng workflow của Dify là một thứ mà công ty chúng tôi đã có, và chúng tôi cung cấp dịch vụ “Hỗ trợ tạo bài viết AI” sử dụng nó. Nếu bạn muốn có các bài viết chất lượng cao với mức giá hợp lý, hãy cân nhắc sử dụng dịch vụ của chúng tôi!

 


Chuẩn bị

Tạo môi trường Dify

Lần này, chúng ta sẽ chạy trên một máy tính cá nhân (PC) MacOS cục bộ.

Phương pháp để khởi động Dify trên PC cục bộ được mô tả chi tiết trong bài viết “Thử tạo bài viết SEO với Dify,” vì vậy vui lòng tham khảo bài viết đó.

Ngoài ra, Dify là một phần mềm mã nguồn mở (OSS) rất năng động và được cập nhật thường xuyên, do đó cần phải cập nhật mã nguồn mới nhất. Bạn có thể tìm cách cập nhật trong bài viết “Sử dụng GPT-4o với Dify trên môi trường cục bộ.”

 

Hiểu các thông số kỹ thuật mới nhất của Dify

Để tạo bài viết bằng quy trình làm việc của Dify, chức năng Iteration là rất cần thiết.

Ngay cả khi bạn tạo một bài viết dài chỉ bằng với một lệnh prompt, chất lượng cũng sẽ không cao. Nguyên tắc để cải thiện chất lượng đầu ra của LLM là chia nhỏ các tác vụ và yêu cầu chúng thực hiện những nhiệm vụ càng nhỏ càng tốt. Khi tạo bài viết, cũng cần phải quyết định cấu trúc tiêu đề trước, sau đó lần lượt yêu cầu LLM tạo các phần bài viết nhỏ cho từng tiêu đề.

Vì vậy, phần “xuất bài viết cho từng tiêu đề” cần xử lý vòng lặp, và đây là lúc Iteration được sử dụng.

Vì vậy, tôi đã tìm hiểu cách sử dụng Iteration, nhưng… hoàn toàn không có thông tin nào! Tại sao vậy!? Có lẽ tài liệu chính thức chưa kịp cập nhật? Tính đến ngày viết bài này là 14/06/2024, Node của quy trình làm việc vẫn chưa được cập nhật với Iteration.

Chỉ có một video thông báo về phiên bản mới. Vì vậy, tôi đã tiến hành với rất nhiều thử nghiệm và sai sót. Kết quả được tóm tắt dưới đây, nhưng quả thật rất khó khăn.

 

Thiết kế quy trình làm việc trên Dify

Xác định đầu vào và đầu ra

Quy trình làm việc được tạo ra bằng cách kết nối các “khối” có thể thực hiện nhiều quy trình khác nhau. Bước đầu tiên là đơn giản xác định kết quả cuối cùng mà quy trình làm việc này sẽ đạt được.

Trong bài viết này, chúng ta sẽ tạo quy trình làm việc dựa trên các điều sau:

  • Đầu vào
    • URL tham khảo để viết lại
    • Từ khóa muốn xếp hạng cao
    • Từ đồng xuất hiện
    • Từ gợi ý
    • Đối tượng mục tiêu
    • Tiêu đề
    • Phần mở đầu
    • Những điểm cần lưu ý khi tạo bài viết
  • Đầu ra
    • Cấu trúc tiêu đề
    • Nội dung cho từng tiêu đề

Nói cách khác, quy trình làm việc sẽ được thiết kế để tóm tắt và viết lại các bài viết hiện có dựa trên các từ khóa, đối tượng mục tiêu và thông tin đã được xác định trước.

 

Thiết kế quy trình xử lý

Mục tiêu là tạo bài viết bằng cách sử dụng quy trình xử lý tổng quát sau:

 

  1. Sử dụng URL đã cung cấp để quét nội dung của bài viết.
  2. Tóm tắt toàn bộ nội dung của bài viết và tạo cấu trúc tiêu đề thể hiện ngắn gọn nội dung.
    1. Sử dụng LLM để tạo bản tóm tắt theo dạng gạch đầu dòng.
    2. Sử dụng LLM để chuyển đổi các gạch đầu dòng thành cấu trúc tiêu đề.
    3. Sử dụng LLM để tạo cấu trúc tiêu đề.
  3. Tạo bài viết cho từng tiêu đề.
  4. Tạo mẫu và tổng hợp nội dung thành bài viết hoàn chỉnh.

 

Tạo từng khối quy trình làm việc trên Dify

Dify上でワークフローの各ブロックを作成する

Đây là tổng quan về quy trình. Dưới đây là giải thích về các chức năng của từng khối.

“Chờ đã… việc tạo bài viết thật sự cần nhiều cài đặt như thế này sao…?” Nếu bạn cảm thấy vậy, thì đúng rồi đấy! Để tạo các Agent hoặc quy trình làm việc thực tiễn, cần có rất nhiều cài đặt. Điều này đòi hỏi chi phí học tập đáng kể, không chỉ về AI tạo sinh mà còn về thông số kỹ thuật của Dify.

Nếu bạn muốn triển khai Dify nhưng không muốn mất công cài đặt, vui lòng liên hệ với chúng tôi!

Liên hệ để biết thêm về dịch vụ hỗ trợ triển khai Dify

 

Bước 1: Bắt đầu

  • Khối: Bắt đầu
  • Đầu vào: Tất cả các mục đầu vào được liệt kê ở trên
  • Đầu ra: Không có

Bước này chỉ đơn giản là chỉ định các mục đầu vào đã liệt kê trước đó.

 

Bước 2: Tạo một mảng URL nguồn

Dify Step.2 参照元URLの配列を作成

  • Khối: Mã
  • Đầu vào: Chuỗi các URL
  • Đầu ra: Mảng chuỗi

Ở Bước 1, danh sách các URL được nhập dưới dạng chuỗi có dấu xuống dòng ngắt dòng, sau đó sẽ được chuyển đổi thành mảng bằng Python. Điều này là cần thiết vì đầu vào cho Iteration được sử dụng sau đó phải ở định dạng mảng.

 

Bước 3: Quét tất cả các URL

Dify Step.3 全URLをスクレイピング

  • Khối: Iteration
  • Đầu vào: Mảng chuỗi URL
  • Đầu ra: Chuỗi (kết quả quét)

Iteration được sử dụng cho quá trình lặp lại. Khi sử dụng Iteration, bạn cần chỉ định cả đầu vào cho Iteration và đầu ra từ nó.

 

Bước 3-1: Quét từng URL

Dify Step.3-1 各URLをスクレイピング

  • Khối: Web Scraper
  • Đầu vào: Mục (Mỗi phần tử của mảng được tham chiếu trong quá trình lặp lại của Iteration. Trong trường hợp này là từng URL riêng lẻ)
  • Đầu ra: Chuỗi (kết quả quét)

Trong bài viết trước, tôi đã sử dụng một công cụ gọi là Crawler để lấy nội dung từ các URL, nhưng lần này vì Crawler không hoạt động, tôi đã sử dụng một công cụ khác gọi là Web Scraper. Bạn chỉ cần đưa URL vào, nó sẽ lấy nội dung cho bạn.

 

Bước 4: Kết hợp tất cả kết quả quét

Dify Step.4 スクレイピング結果をすべて結合

  • Khối: Mã
  • Đầu vào: Mảng chuỗi (kết quả quét)
  • Đầu ra: Chuỗi

Trong các bước tiếp theo, tôi muốn gộp nội dung của các URL đã cho và tóm tắt chúng, vì vậy tôi sẽ kết hợp tất cả các nội dung từ các bài viết của URL.

 

Bước 5: Tạo cấu trúc tiêu đề bài viết bằng GPT-4o

Dify Step.5 記事の見出し構成をGPT-4oで作成

  • Khối: LLM (Chỉ định mô hình GPT-4o)
  • Đầu vào: Chuỗi (Nội dung hợp nhất từ các bài viết trước)
  • Đầu ra: Chuỗi (Đề xuất cấu trúc tiêu đề)

Cung cấp nội dung hợp nhất từ các bài viết trước cho GPT-4o, và nó sẽ tóm tắt dưới dạng gạch đầu dòng. Dựa trên bản tóm tắt đó, GPT-4o sẽ tạo ra đề xuất cấu trúc tiêu đề cho bài viết.

 

Bước 6: Xem xét và tinh chỉnh cấu trúc tiêu đề bằng GPT-4o

Dify Step.6 記事の見出し構成をGPT-4oがレビュー、修正

  • Khối: LLM (Chỉ định mô hình GPT-4o)
  • Đầu vào: Chuỗi (Đề xuất cấu trúc tiêu đề)
  • Đầu ra: Chuỗi (Cấu trúc tiêu đề cuối cùng)

Để GPT-4o xem xét lại cấu trúc tiêu đề đề xuất đã tạo ở bước trước và tinh chỉnh nó. Bổ sung bước này sẽ giúp cải thiện chất lượng đáng kể.

 

Bước 7: Chuyển đổi cấu trúc tiêu đề thành mảng Python

Dify Step.7 見出し構成をPythonの配列の構成にする

  • Khối: LLM (Chỉ định mô hình GPT-4o)
  • Đầu vào: Chuỗi (Cấu trúc tiêu đề cuối cùng)
  • Đầu ra: Chuỗi (Định dạng mảng)

Từ đây, mọi thứ bắt đầu trở nên hơi khó khăn. Do những hạn chế của Iteration, A) không thể lồng nhau (không thể tạo nhiều hơn hai vòng lặp), và B) đầu vào phải là một mảng (không thể truyền JSON). Điều này đã trở thành một rào cản và khiến không thể thực hiện được việc “vòng lặp qua tiêu đề 1, sau đó lặp qua tiêu đề 2 để tạo bài viết cho từng tiêu đề,” một mối quan hệ 1

Có lẽ hơi khó hiểu một chút, nhưng đây là ví dụ:

[  [“Tiêu đề 1: Tiêu đề 1 thứ nhất”, “Tiêu đề 2: Tiêu đề 2 thứ nhất”, “Tóm tắt: Tóm tắt tương ứng với tiêu đề 2”],

  [“Tiêu đề 1: Tiêu đề 1 thứ nhất”, “Tiêu đề 2: Tiêu đề 2 thứ hai”, “Tóm tắt: Tóm tắt tương ứng với tiêu đề 2”],

  [“Tiêu đề 1: Tiêu đề 1 thứ hai”, “Tiêu đề 2: Tiêu đề 2 thứ nhất”, “Tóm tắt: Tóm tắt tương ứng với tiêu đề 2”],

  …

  [“Tiêu đề 1: Tiêu đề 1 thứ n”, “Tiêu đề 2: Tiêu đề 2 thứ nhất”, “Tóm tắt: Tóm tắt tương ứng với tiêu đề 2”],

  [“Tiêu đề 1: Tiêu đề 1 thứ n”, “Tiêu đề 2: Tiêu đề 2 thứ hai”, “Tóm tắt: Tóm tắt tương ứng với tiêu đề 2”],

  …

  [“Tiêu đề 1: Tiêu đề 1 thứ n”, “Tiêu đề 2: Tiêu đề 2 thứ n”, “Tóm tắt: Tóm tắt tương ứng với tiêu đề 2”]

]

GPT-4o tạo một mảng như trên và tạm thời xuất ra dưới dạng chuỗi.

 

Bước 8: Chuyển đổi dữ liệu chuỗi “giống mảng” thành mảng thực sự

Dify Step.8 「配列っぽい」文字列型のデータを配列型にする

  • Khối: Mã
  • Đầu vào: Chuỗi (Chuỗi định dạng mảng)
  • Đầu ra: Mảng chuỗi

Vì khối LLM chỉ có thể xuất chuỗi, bước trước đó sẽ xuất một chuỗi có định dạng giống cấu trúc mảng. Một chương trình Python sẽ được sử dụng để ép chuyển đổi điều này thành mảng để chuyển cho Iteration.

 

Bước 9: Tạo bài viết cho tất cả các tiêu đề

Dify Step.9 全見出しの記事を作成する

  • Khối: Iteration
  • Đầu vào: Mảng chuỗi
  • Đầu ra: Mảng chuỗi (Nội dung bài viết)

Mảng tiêu đề sẽ được lặp lại trong quá trình và nội dung của bài viết sẽ được tạo cho từng tiêu đề.

 

Bước 9-1: Tạo bài viết cho từng tiêu đề

Dify Step.9-1 各見出しの記事を作成する

  • Khối: LLM (Chỉ định mô hình GPT-4o)
  • Đầu vào: Mục (Phần tử của mảng được tham chiếu trong quá trình lặp Iteration. Trong trường hợp này là một chuỗi kết hợp tiêu đề 1 và tiêu đề 2)
  • Đầu ra: Chuỗi (Nội dung bài viết)

Dựa trên tiêu đề 1 và tiêu đề 2 được truyền từ Iteration cùng với các thông tin khác từ bước Start, GPT-4o sẽ tạo nội dung bài viết. Điều kiện cụ thể được cung cấp để đảm bảo rằng nội dung mong muốn được tạo ra khi viết nội dung bài viết.

 

Bước 10: Áp dụng mẫu

Dify Step.10 テンプレートを適用する

  • Khối: Mẫu
  • Đầu vào: Mảng chuỗi (Nội dung bài viết)
  • Đầu ra: Chuỗi

Đây là một bước bổ sung, nhưng để làm cho đầu ra giống như một bài viết, chúng tôi áp dụng một mẫu bao gồm tiêu đề, phần mở đầu, các tiêu đề và nội dung. Mẫu của Dify sử dụng Jinja2.

 

Kiểm tra đầu ra

DifyのワークフローでSEO記事を作成した結果

Tôi không thực sự hiểu… haha.

 

Tóm tắt

Điểm cải tiến

  • Sau khi tạo cấu trúc tiêu đề bằng GPT-4o, việc xem xét và tinh chỉnh cấu trúc bằng GPT-4o sẽ mang lại kết quả khá tốt.
  • Do không thể sử dụng nhiều vòng lặp trong Iteration và không thể nhập JSON, tôi đã phải nhờ GPT-4o tạo chuỗi có dạng mảng của Python (có vẻ hơi quá đà), nhưng cuối cùng tôi cũng có thể xuất toàn bộ quy trình. Rất vất vả…

 

Các điểm cần cải thiện và điều không thể đạt được

  • Vì GPT-4o tạo mảng nên đầu ra không ổn định, thỉnh thoảng tạo ra cấu trúc không phải là mảng, dẫn đến Python gặp lỗi.
  • Tôi muốn tạo một cấu trúc như:
    “Tiêu đề 1 > Tiêu đề 2 > Nội dung, Tiêu đề 2 > Nội dung… Nội dung, Tiêu đề 1 > Tiêu đề 2 >…” nhưng tôi không thể làm được. Nếu ai đó có kinh nghiệm hơn với quy trình làm việc có ý tưởng, vui lòng liên hệ với chúng tôi…!

 

Cảm nghĩ

  • Giao một nhiệm vụ lớn như tạo bài viết hiệu quả SEO cho quy trình làm việc là rất khó khăn. Sử dụng agent có vẻ là một lựa chọn tốt hơn.
  • Quy trình làm việc có vẻ thích hợp hơn với các quy trình có thể hoàn thành trong các bước ngắn gọn, đơn giản hơn.
  • Điều này có thể nói là đương nhiên, nhưng nếu bạn muốn tạo quy trình làm việc có thể sử dụng trong kinh doanh công việc, Make.com sẽ là lựa chọn tốt hơn. Make.com có độ linh hoạt và khả năng mở rộng vượt trội.

 

Để yêu cầu phát triển hệ thống sử dụng AI tạo sinh, vui lòng liên hệ với chúng tôi tại đây.

Cảm ơn bạn đã đọc hết bài viết!

Thực tế, hệ thống mà tôi đang cố gắng thực hiện với quy trình làm việc của Dify là một thứ mà công ty chúng tôi đã sở hữu, và chúng tôi cung cấp dịch vụ “Dịch vụ tạo bài viết bằng AI.” Nếu bạn đang tìm cách tạo ra các bài viết chất lượng cao liên tục với giá cả hợp lý, vui lòng sử dụng dịch vụ của chúng tôi!

Công ty chúng tôi cung cấp dịch vụ “Tư vấn AI tạo sinh,” bao gồm việc lựa chọn mô hình ngôn ngữ lớn (LLM) và kiến trúc, xác minh kỹ thuật, tạo mẫu thử và phát triển hệ thống sử dụng AI tạo sinh, cũng như đào tạo và giáo dục trong nội bộ cho nhân viên của bạn.

Chúng tôi cũng cung cấp “Secure GAI,” một giải pháp tương tự như ChatGPT có thể sử dụng trong môi trường doanh nghiệp.

Tất nhiên, chúng tôi cũng sẵn sàng hỗ trợ việc thiết lập và triển khai Dify.

Nếu bài viết này đã khơi dậy sự quan tâm của bạn đối với AI tạo sinh hoặc nếu bạn có nhu cầu liên kết hệ thống với AI tạo sinh, vui lòng liên hệ với chúng tôi qua biểu mẫu bên dưới!

Leave a Reply

Your email address will not be published. Required fields are marked *