Xây dựng hoạt động tìm kiếm nội dung dựa trên AI thông qua Nhân viên hỗ trợ Google Tài liệu

Tìm kiếm thông tin là một trong những cách phổ biến nhất của công nghệ AI trí tuệ nhân tạo (AI). Xây dựng giao diện tìm kiếm trò chuyện cho nội dung của bạn bằng cách sử dụng AI cho phép người dùng đặt các câu hỏi cụ thể và nhận các câu trả lời trực tiếp.

Hướng dẫn này chỉ cho bạn cách tạo một công cụ tìm kiếm trò chuyện sử dụng trí tuệ nhân tạo cho nội dung của mình. Giá trị này dựa trên Tác nhân Tài liệu, một dự án nguồn mở sử dụng Google Gemini API để tạo một cuộc trò chuyện giao diện tìm kiếm, mà không cần huấn luyện mô hình AI mới hoặc điều chỉnh mô hình bằng Mô hình Gemini. Điều đó có nghĩa là bạn có thể nhanh chóng xây dựng chức năng tìm kiếm này và sử dụng cho tập hợp nội dung lớn và nhỏ.

Để xem video tổng quan về dự án và cách mở rộng dự án, bao gồm cả thông tin chi tiết từ những người tạo ra nó, hãy xem: Tìm kiếm nội dung do AI tạo | Xây dựng bằng AI của Google. Nếu không, bạn có thể bắt đầu mở rộng dự án theo hướng dẫn bên dưới.

Tổng quan

Dự án Tác nhân tài liệu cung cấp giao diện tìm kiếm trò chuyện cho một người dùng cụ thể tập hợp nội dung, dựa trên dữ liệu của Google Gemini API và các mô hình tạo sinh. Người dùng có thể đặt một câu hỏi chi tiết theo phong cách trò chuyện và nhận câu trả lời chi tiết dựa trên nhóm nội dung cụ thể. Ở hậu trường, Nhân viên hỗ trợ của Google Tài liệu sẽ và tìm kiếm dựa trên cơ sở dữ liệu vectơ của nội dung, đồng thời tạo một câu lệnh chi tiết về mô hình tạo sinh, bao gồm cả các đoạn trích của văn bản có liên quan. Mô hình tạo sinh tạo câu trả lời cho câu hỏi và Nhân viên hỗ trợ của Tài liệu định dạng phản hồi và hiển thị phản hồi đó cho người dùng.

Sơ đồ chức năng của Tác nhân Google Tài liệu Hình 1. Sơ đồ chức năng của ứng dụng dự án Docs Agent.

Chìa khóa để giúp Nhân viên hỗ trợ tài liệu trả lời câu hỏi về nội dung của bạn là việc tạo cơ sở dữ liệu vectơ của nội dung đó. Bạn tách nội dung của mình thành các đoạn văn bản logic và tạo một vectơ cho mỗi đoạn văn bản đó. Các vectơ này biểu diễn bằng số của thông tin trong mỗi đoạn và được tạo bằng một chức năng Nhúng văn bản dựa trên AI từ các mô hình tạo sinh của Google.

Khi người dùng đặt câu hỏi, Nhân viên hỗ trợ tài liệu cũng sử dụng cùng một tính năng nhúng văn bản để tạo bản trình bày dạng số cho câu hỏi đó rồi sử dụng giá trị đó để tìm kiếm trong cơ sở dữ liệu vectơ và tìm nội dung có liên quan. Nó chiếm vị trí đầu tiên kết quả và thêm thông tin đó vào câu lệnh cho mô hình tạo sinh. AI (trí tuệ nhân tạo) lấy câu hỏi cùng với thông tin ngữ cảnh bổ sung rồi tạo ra một .

Thiết lập dự án

Các hướng dẫn sau sẽ hướng dẫn bạn cách thiết lập dự án Docs Agent phát triển và kiểm thử. Các bước chung là cài đặt một số điều kiện tiên quyết phần mềm, thiết lập một vài biến môi trường, sao chép dự án từ đoạn mã kho lưu trữ và chạy cài đặt cấu hình. Dự án mã sử dụng Python Poetry để quản lý các gói và môi trường thời gian chạy Python.

Cài đặt điều kiện tiên quyết

Dự án Docs Agent sử dụng Python 3 và Python Poetry để quản lý các gói và chạy ứng dụng. Các hướng dẫn cài đặt sau dành cho Linux máy chủ.

Cách cài đặt phần mềm cần thiết:

  1. Cài đặt Python 3 và gói môi trường ảo venv cho Python.
    sudo apt update
    sudo apt install git pip python3-venv
    
  2. Cài đặt Python Poetry để quản lý các phần phụ thuộc và đóng gói cho dự án.
    curl -sSL https://install.python-poetry.org | python3 -
    

Bạn có thể sử dụng Python Poetry để thêm các thư viện Python khác nếu bạn mở rộng dự án.

Đặt các biến môi trường

Đặt một số biến môi trường bắt buộc để cho phép mã Tác nhân tài liệu dự án cần chạy, bao gồm cả Khoá API Gemini của Google và Python Bối cảnh thơ ca. Bạn nên thêm các biến này vào tệp $HOME/.bashrc của mình nếu bạn đang sử dụng Linux, để đặt chúng làm chế độ cài đặt mặc định cho thiết bị đầu cuối của bạn phiên hoạt động.

Cách đặt các biến môi trường:

  1. Lấy Khoá API Gemini của Google rồi sao chép chuỗi khoá.
  2. Đặt Khoá API làm biến môi trường. Trên máy chủ Linux, hãy sử dụng sau đây.
    export API_KEY=<YOUR_API_KEY_HERE>
    
  3. Giải quyết lỗi đã biết vấn đề cho Python Poetry bằng cách đặt tham số PYTHON_KEYRING_BACKEND. Trên máy chủ Linux, hãy dùng lệnh sau.
    export PYTHON_KEYRING_BACKEND=keyring.backends.null.Keyring
    

Sao chép và định cấu hình dự án

Tải mã dự án xuống và sử dụng lệnh cài đặt Poetry để tải xuống các phần phụ thuộc bắt buộc và định cấu hình dự án. Bạn cần git phần mềm kiểm soát nguồn để truy xuất mã nguồn dự án. bên ngoài Cách tải xuống và định cấu hình mã dự án:

  1. Sao chép kho lưu trữ git bằng lệnh sau.
    git clone https://github.com/google/generative-ai-docs
    
  2. Bạn có thể định cấu hình kho lưu trữ git cục bộ để sử dụng quy trình thanh toán thưa thớt, nên bạn chỉ có các tệp cho dự án Docs Agent.
    cd generative-ai-docs/
    git sparse-checkout init --cone
    git sparse-checkout set examples/gemini/python/docs-agent/
    
  3. Chuyển đến thư mục gốc của dự án docs-agent.
    cd examples/gemini/python/docs-agent/
    
  4. Chạy lệnh cài đặt Poetry để tải các phần phụ thuộc xuống và định cấu hình dự án:
    poetry install
    

Chuẩn bị nội dung

Dự án Docs Agent được thiết kế để hoạt động với nội dung văn bản và bao gồm để làm việc với các trang web sử dụng Markdown làm định dạng nguồn. Nếu bạn đang làm việc với nội dung trang web, bạn nên giữ lại (hoặc sao chép) cấu trúc thư mục của trang web được cung cấp để cho phép tác vụ xử lý nội dung để ánh xạ và tạo liên kết đến nội dung đó.

Tuỳ thuộc vào định dạng và thông tin chi tiết của nội dung, bạn có thể cần dọn dẹp nội dung cần xoá thông tin không công khai, ghi chú nội bộ hoặc thông tin khác mà bạn không muốn có thể tìm kiếm được. Bạn nên giữ lại định dạng cơ bản như dưới dạng tiêu đề và tiêu đề, giúp tạo các đoạn hoặc đoạn văn bản hợp lý trong bước xử lý nội dung.

Cách chuẩn bị nội dung để xử lý:

  1. Tạo một thư mục chứa nội dung mà bạn muốn tác nhân AI tìm kiếm.
    mkdir docs-agent/content/
    
  2. Sao chép nội dung của bạn vào thư mục docs-agent/content/. Nếu nội dung là một trang web, lưu giữ (hoặc sao chép) cấu trúc thư mục của trang web được phân phát.
  3. Làm sạch hoặc chỉnh sửa nội dung nếu cần để xoá thông tin không công khai, hoặc thông tin khác mà bạn không muốn đưa vào các lượt tìm kiếm.

Sử dụng tài liệu Flutter để kiểm thử

Nếu cần một bộ nội dung để thử nghiệm Tác nhân Tài liệu, bạn có thể dùng Flutter tài liệu dành cho nhà phát triển để kiểm thử.

Cách tải tài liệu dành cho nhà phát triển Flutter:

  1. Di chuyển đến thư mục nội dung của nội dung mà bạn muốn nhân viên hỗ trợ AI tìm kiếm.
    cd docs-agent/content/
    
  2. Sao chép các tài liệu Flutter vào thư mục docs-agent/content/.
    git clone --recurse-submodules https://github.com/flutter/website.git
    

Xử lý nội dung

Để tác nhân tìm kiếm có thể tìm kiếm hiệu quả nội dung liên quan đến của người dùng câu hỏi, bạn cần xây dựng một cơ sở dữ liệu gồm các vectơ đại diện cho nội dung. Các vectơ được tạo bằng một hàm mô hình tạo sinh của AI có tên là Nhúng văn bản. Nhúng văn bản là cách biểu diễn văn bản dưới dạng số nội dung. Các tham số này ước chừng ý nghĩa ngữ nghĩa của văn bản ở dạng một tập hợp số. Việc biểu diễn thông tin ở dạng số cho phép hệ thống lấy được câu hỏi của người dùng, ước chừng ý nghĩa của câu hỏi bằng cách nhúng văn bản tương tự rồi tìm thông tin liên quan dưới dạng phép tính toán học, sử dụng người hàng xóm gần nhất (k-NN).

Chia tách nội dung văn bản

Lượng văn bản mà vectơ nhúng văn bản có thể biểu thị hiệu quả là bị hạn chế. Dự án này giới hạn văn bản biểu diễn trong vectơ ở mức 3.000 ký tự hoặc ít hơn, đồng nghĩa với việc bạn phải chia nội dung thành nhiều phần nhỏ giới hạn ký tự. Phần này mô tả cách sử dụng tập lệnh được cung cấp cùng với Dự án của Tác nhân tài liệu để chia các tệp Markdown thành các phần văn bản nhỏ hơn. Để biết các mẹo về khi làm việc với các định dạng nội dung khác, hãy xem Xử lý các định dạng khác.

Cách phân tách nội dung theo định dạng Markdown:

  1. Định cấu hình các tham số đầu vào cho tập lệnh xử lý bằng cách chỉnh sửa Tệp docs-agent/config.yaml. Ví dụ này nhắm đến một tập hợp con của các tài liệu về Flutter:
    input:
    - path: "content/website/src/ui"
      url_prefix: "https://docs.flutter.dev/ui"
    
  2. Lưu các thay đổi của bạn đối với tệp cấu hình này.
  3. Chuyển đến thư mục dự án docs-agent:
    cd docs-agent/
    
  4. Tách nội dung nguồn Markdown bằng cách chạy lệnh agent chunk:
    agent chunk
    

Tập lệnh sẽ xử lý nội dung đầu vào và tạo các tệp văn bản đầu ra trong Thư mục docs-agent/data, chia văn bản dựa trên tiêu đề, đề mục và đoạn văn bản liên quan. Quá trình xử lý có thể mất chút thời gian, tuỳ thuộc vào kích thước của nội dung.

Tạo vectơ nhúng văn bản

Sau khi chia nội dung thành các phần có kích thước phù hợp và có ý nghĩa, bạn có thể đưa nội dung của mình vào cơ sở dữ liệu vectơ bằng cách sử dụng tính năng nhúng văn bản . Dự án Tác nhân tài liệu sử dụng Chroma cơ sở dữ liệu vectơ để lưu trữ các vectơ nhúng văn bản. Những hướng dẫn này đề cập đến cách để sử dụng tập lệnh Docs Agents nhằm điền sẵn cơ sở dữ liệu vectơ với phần phân tách của bạn nội dung.

Cách tạo văn bản nhúng và điền sẵn cơ sở dữ liệu vectơ:

  1. Chuyển đến thư mục dự án docs-agent:
    cd docs-agent/
    
  2. Điền nội dung của bạn vào cơ sở dữ liệu vectơ bằng cách sử dụng agent populate Command:
    agent populate
    

Tập lệnh này sử dụng Google Gemini API để tạo Nhúng văn bản các vectơ rồi lưu đầu ra vào cơ sở dữ liệu vectơ. Quá trình xử lý có thể mất đôi khi tùy thuộc vào kích thước nội dung của bạn.

Xử lý các định dạng khác

Dự án Docs Agent được thiết kế để hoạt động với nội dung trang web trong Markdown . Tác giả dự án đã tạo một số tập lệnh chuyển đổi để tạo các loại nội dung khác sang định dạng Markdown, bao gồm Google Tài liệu, Di động Định dạng tài liệu (PDF) và Gmail. Để biết thêm thông tin về cách sử dụng người chuyển đổi, hãy xem docs-agent/apps_script thư mục của kho lưu trữ mã.

Chuyển đổi các định dạng nội dung khác

Bạn có thể sử dụng các định dạng nội dung khác trong dự án này, tuy nhiên bạn hoặc các thành viên khác trong cộng đồng cần xây dựng các phương pháp bổ sung. Kiểm tra kho lưu trữ mã Vấn đềYêu cầu lấy dữ liệu để những người đang xây dựng các giải pháp tương tự.

Mã khoá bạn cần xây dựng để hỗ trợ các định dạng nội dung khác là bộ chia tập lệnh như files_to_plain_text.py tập lệnh. Cố gắng xây dựng một tập lệnh hoặc chương trình tạo ra kết quả tương tự với tập lệnh. Hãy nhớ rằng đầu ra văn bản cuối cùng phải có định dạng tối thiểu và thông tin không liên quan. Nếu bạn đang sử dụng các định dạng nội dung như HTML hoặc JSON, đảm bảo bạn loại bỏ quá nhiều định dạng không có thông tin (thẻ, tập lệnh, CSS) nhất có thể để không làm lệch giá trị của văn bản các mục nhúng bạn tạo từ chúng.

Sau khi tạo tập lệnh phần phân tách cho định dạng nội dung, bạn có thể chạy populate_vector_database.py để điền cơ sở dữ liệu vectơ. Để biết thêm thông tin về quá trình xử lý để sử dụng với Tác nhân Google Tài liệu, hãy xem Tác nhân tài liệu Đọc trước quy trình.

Kiểm thử ứng dụng

Khi bạn đã điền xong cơ sở dữ liệu vectơ, dự án đã sẵn sàng để thử nghiệm. Dự án này cung cấp chức năng đóng gói để bạn có thể chạy dự án cục bộ.

Cách chạy và kiểm thử giao diện web của dự án:

  1. Chuyển đến thư mục dự án docs-agent:
    cd docs-agent/
    
  2. Chạy tập lệnh khởi chạy ứng dụng web:
    agent chatbot
    
  3. Sử dụng trình duyệt web của bạn, điều hướng đến URL địa chỉ web hiển thị trong kết quả của tập lệnh khởi chạy và kiểm thử ứng dụng.
    * Running on http://your-hostname-here:5000
    

Các cách triển khai

Gemini API cung cấp những công cụ lập trình có thể thay thế các thành phần của việc triển khai Tác nhân tài liệu, cụ thể là: Truy xuất ngữ nghĩa và Được phân bổ Biến thể mô hình Gemini trong phần Trả lời câu hỏi (AQA). Bạn có thể sử dụng Truy xuất theo ngữ nghĩa để thay thế cơ sở dữ liệu vectơ riêng biệt. Tính năng Truy xuất ngữ nghĩa cho phép bạn tạo các mục nhúng cho nội dung của mình và lưu trữ nội dung đó. Chiến lược phát hành đĩa đơn AQA Mô hình Gemini được điều chỉnh cho trả lời câu hỏi bằng tài liệu nguồn được cung cấp trong câu lệnh. Bạn sử dụng ngữ nghĩa Truy xuất cùng với mô hình AQA để trả lời câu hỏi về nội dung của bạn, tất cả đều có trong Gemini API.

Nhân viên hỗ trợ Google Tài liệu cung cấp các lựa chọn cấu hình để sử dụng báo cáo Ngữ nghĩa Truy xuất tính năng API, mô hình AQA Gemini hoặc cả hai. Để biết thêm thông tin, hãy xem thời gian Readme tác nhân Tài liệu.

Tài nguyên khác

Để biết thêm thông tin về dự án Tác nhân tài liệu, hãy xem kho lưu trữ mã. Nếu bạn cần trợ giúp về việc xây dựng ứng dụng hoặc đang tìm kiếm nhà phát triển cộng tác viên, hãy xem Cộng đồng nhà phát triển của Google trên Discord máy chủ.

Ứng dụng phát hành công khai

Nếu bạn dự định triển khai Tác nhân Google Tài liệu cho nhiều người dùng, xin lưu ý rằng việc sử dụng thì Google Gemini API có thể bị giới hạn số lượng yêu cầu và hạn chế sử dụng. Nếu bạn đang cân nhắc xây dựng một ứng dụng phát hành công khai bằng Gemini API, chẳng hạn như Tác nhân Tài liệu, thanh toán Vertex AI của Google Cloud của chúng tôi để tăng khả năng có thể mở rộng và độ tin cậy cho ứng dụng của bạn.