N8N Naive RAG Chatbot

₫0

Template này xây dựng một chatbot Trí tuệ nhân tạo (AI) dựa trên mô hình RAG (Retrieval-Augmented Generation) cơ bản (naive). Chatbot này tự động nhập và xử lý các tài liệu từ một thư mục Google Drive được chỉ định, sau đó lưu trữ chúng trong cơ sở dữ liệu vector Supabase. Cuối cùng, chatbot này sử dụng một nhân viên AI để trả lời các câu hỏi của người dùng về các tài liệu đó thông qua một giao diện trò chuyện.

Tạo chatbot RAG với tài liệu từ Google Drive, OpenAI và Supabase

Template này xây dựng một chatbot Trí tuệ nhân tạo (AI) dựa trên mô hình RAG (Retrieval-Augmented Generation) cơ bản (naive). Chatbot này tự động nhập và xử lý các tài liệu từ một thư mục Google Drive được chỉ định, sau đó lưu trữ chúng trong cơ sở dữ liệu vector Supabase. Cuối cùng, chatbot này sử dụng một nhân viên AI để trả lời các câu hỏi của người dùng về các tài liệu đó thông qua một giao diện trò chuyện.

Dành cho ai?

  • Nhà phát triển xây dựng các bot hỗ trợ được hỗ trợ bởi AI.
  • Các nhóm muốn tạo một chatbot kiến thức nội bộ để trả lời các câu hỏi của nhân viên.
  • Người dùng n8n muốn xây dựng một hệ thống trả lời câu hỏi dựa trên bộ tài liệu riêng của họ.
  • Những người đam mê AI muốn khám phá kiến trúc RAG để kết hợp các Mô hình Ngôn ngữ Lớn (LLM) với dữ liệu riêng tư.

Các tính năng chính

  • Nhập tài liệu tự động: Tự động kích hoạt khi có tệp mới được thêm vào thư mục Google Drive được chỉ định.
  • Kiến trúc RAG: Triển khai một quy trình RAG hoàn chỉnh để cung cấp các câu trả lời phù hợp theo ngữ cảnh dựa trên tài liệu của bạn.
  • Lưu trữ Vector: Sử dụng Supabase và phần mở rộng pgvector của nó để lưu trữ và truy xuất hiệu quả các nhúng tài liệu.
  • Bộ nhớ đàm thoại: Ghi nhớ các tương tác trong quá khứ trong một cuộc trò chuyện bằng cách sử dụng bộ nhớ trò chuyện Postgres, cho phép các cuộc trò chuyện tiếp theo có ngữ cảnh.
  • Nhân viên AI: Sử dụng một nhân viên LangChain của n8n để sử dụng cơ sở kiến thức một cách thông minh (công cụ truy xuất) để trả lời các câu hỏi.
  • Giao diện trò chuyện sẵn sàng sử dụng: Bao gồm một trình kích hoạt trò chuyện để bạn có thể triển khai và tương tác với chatbot của mình ngay lập tức.

Cách hoạt động

Mẫu này được chia thành hai quy trình công việc chính:

  1. Quy trình công việc 1: Nhập tài liệu
  1. Một nút Trình kích hoạt Google Drive giám sát một thư mục cụ thể để tìm các tệp mới.
  2. Khi một tệp được thêm vào, nó sẽ được tải xuống và nội dung văn bản của nó được trích xuất.
  3. Văn bản được trích xuất được chia thành các đoạn nhỏ hơn, dễ quản lý hơn.
  4. Một nút Nhúng OpenAI chuyển đổi các đoạn văn bản này thành các vector số.
  5. Các vector này, cùng với siêu dữ liệu của chúng, được chèn vào một bảng được chỉ định trong kho vector Supabase của bạn.
  1. Quy trình công việc 2: Tương tác trò chuyện
  1. Trình kích hoạt trò chuyện nhận tin nhắn và ID phiên của người dùng.
  2. Nhân viên giám sát RAG nhận câu hỏi của người dùng.
  3. Nhân viên này sử dụng nút Kho vector Supabase làm công cụ để tìm kiếm các đoạn tài liệu có liên quan dựa trên truy vấn của người dùng.
  4. Mô hình trò chuyện OpenAI tạo ra một phản hồi dựa trên câu hỏi của người dùng, ngữ cảnh được truy xuất từ các tài liệu và lịch sử cuộc trò chuyện (được quản lý bởi Bộ nhớ trò chuyện Postgres).
  5. Câu trả lời cuối cùng được gửi lại cho người dùng thông qua giao diện trò chuyện.

Yêu cầu

  • Một phiên bản n8n.
  • Một tài khoản OpenAI và khóa API.
  • Một tài khoản Google cho Google Drive.
  • Một tài khoản Supabase, bao gồm:
  • Một dự án Supabase.
  • Một cơ sở dữ liệu Postgres (đi kèm với Supabase) để lưu trữ lịch sử trò chuyện.

Hướng dẫn cài đặt từng bước

  1. Thiết lập Supabase:
  • Tạo một dự án mới trong Supabase.
  • Đi tới SQL Editor trong dự án của bạn và chọn Quickstarts => Langchain.
  • Dán toàn bộ script SQL sau vào trình soạn thảo và nhấn Run. Script này sẽ kích hoạt pgvector, tạo bảng documents và tạo một hàm để tìm kiếm.
-- Enable the pgvector extension to work with embedding vectors
create extension vector;

-- Create a table to store your documents
create table documents (
  id bigserial primary key,
  content text, -- corresponds to Document.pageContent
  metadata jsonb, -- corresponds to Document.metadata
  embedding vector(1536) -- 1536 works for OpenAI embeddings, change if needed
);

-- Create a function to search for documents
create function match_documents (
  query_embedding vector(1536),
  match_count int default null,
  filter jsonb DEFAULT '{}'
) returns table (
  id bigint,
  content text,
  metadata jsonb,
  similarity float
)
language plpgsql
as $$
#variable_conflict use_column
begin
  return query
  select
    id,
    content,
    metadata,
    1 - (documents.embedding <=> query_embedding) as similarity
  from documents
  where metadata @> filter
  order by documents.embedding <=> query_embedding
  limit match_count;
end;
$$;
  1. Thiết lập Google Drive:
  • Chọn hoặc tạo một thư mục Google Drive nơi bạn sẽ tải lên các tài liệu nguồn của mình (.txt, .doc, v.v.).
  • Sao chép ID thư mục từ URL (ví dụ: https://drive.google.com/drive/folders/YOUR_FOLDER_ID).
  1. Thiết lập thông tin xác thực n8n:
  • Thêm thông tin xác thực cho OpenAI, Google DriveSupabase API vào phiên bản n8n của bạn.
  • Thêm thông tin xác thực Postgres riêng biệt bằng cách sử dụng chi tiết kết nối cơ sở dữ liệu từ dự án Supabase của bạn.
  1. Định cấu hình các nút mẫu:
  • Google Drive File Created (Trigger): Dán ID thư mục Google Drive của bạn vào trường Folder To Watch.
  • Insert Content into Supabase Vectorstore: Chọn thông tin xác thực Supabase của bạn và nhập tên của bảng bạn đã tạo (documents).
  • OpenAI Embeddings & OpenAI Chat Model: Chọn thông tin xác thực OpenAI của bạn.
  • Supabase Vector Store (trong quy trình trò chuyện): Chọn thông tin xác thực Supabase của bạn, nhập tên bảng (documents) và tên của hàm tìm kiếm (match_documents).
  • Postgres Chat Memory: Chọn thông tin xác thực Postgres của bạn và định cấu hình tên bảng để lưu trữ lịch sử trò chuyện (ví dụ: chat_history).
  1. Kích hoạt quy trình công việc: Lưu và kích hoạt quy trình công việc.
  1. Chạy lần đầu (Nhập): Thêm một tài liệu vào thư mục Google Drive được chỉ định của bạn để kích hoạt phần nhập của quy trình công việc và điền vào kho vector của bạn.
  1. Trò chuyện: Sử dụng giao diện trò chuyện để bắt đầu đặt câu hỏi về tài liệu của bạn.

Cách tùy chỉnh quy trình công việc

  • Thay đổi LLM: Hoán đổi Mô hình trò chuyện OpenAI với các mô hình được hỗ trợ khác như Anthropic Claude hoặc Google Gemini.
  • Sử dụng các kho vector khác: Thay thế nút Supabase bằng các tùy chọn khác như Pinecone, Weaviate hoặc Qdrant. Bạn sẽ cần điều chỉnh quy trình nhập cho phù hợp.
  • Tối ưu hóa việc chia nhỏ văn bản: Điều chỉnh Chunk Size và Chunk Overlap trong nút Character Text Splitter để tối ưu hóa hiệu suất và mức độ liên quan của ngữ cảnh cho các tài liệu cụ thể của bạn.
  • Điều chỉnh lời nhắc của nhân viên: Sửa đổi thông báo hệ thống trong nút RAG Supervisor AI Agent để thay đổi tính cách, hướng dẫn hoặc các ràng buộc của chatbot.