Tích hợp công cụ nâng cao

Trước khi bắt đầu với hướng dẫn nâng cao này, vui lòng đảm bảo rằng bạn đã có hiểu biết cơ bản về quy trình tích hợp công cụ trong NeuronFlow. Hãy xem qua phần Tích hợp nhanh công cụ để có cái nhìn tổng quan nhanh.

Giao diện công cụ

Chúng tôi đã định nghĩa một loạt các phương thức trợ giúp trong class Tool để giúp các nhà phát triển nhanh chóng xây dựng các công cụ phức tạp hơn.

Phản hồi tin nhắn

NeuronFlow hỗ trợ các loại tin nhắn khác nhau như text, link, image, và file BLOB. Bạn có thể trả về các loại tin nhắn khác nhau cho LLM và người dùng thông qua các giao diện sau.

Lưu ý rằng một số tham số trong các giao diện sau sẽ được giới thiệu trong các phần sau.

URL ảnh

Bạn chỉ cần truyền URL của hình ảnh, và hệ thống sẽ tự động tải xuống hình ảnh và trả lại cho người dùng.

    def create_image_message(self, image: str, save_as: str = '') -> ToolInvokeMessage:
        """
            create an image message

            :param image: the url of the image
            :return: the image message
        """

Link

Nếu bạn cần trả về một liên kết, bạn có thể sử dụng giao diện sau đây..

Text

Nếu bạn cần trả về một văn bản, bạn có thể sử dụng giao diện sau đây.

File BLOB

Nếu bạn cần trả về dữ liệu thô của một tệp (raw data) , chẳng hạn như hình ảnh, âm thanh, video, PPT, Word, Excel, v.v., bạn có thể sử dụng giao diện sau.

  • blob Raw data, thuộc loại bytes

  • meta Thông tin metadata của tệp, nếu bạn biết loại tệp, tốt nhất nên truyền một mime_type, nếu không Thổ Thần sẽ sử dụng octet/stream làm loại mặc định.

Công cụ hỗ trợ

Chúng tôi có hai nhu cầu phổ biến:

  • Đầu tiên, tóm tắt một đoạn văn bản dài trước, sau đó chuyển nội dung tóm tắt cho LLM để tránh trường hợp văn bản gốc quá dài so với khả năng xử lý của LLM.

  • Nội dung là một liên kết, và thông tin trang web cần được lấy trước khi có thể trả lại cho LLM.

Để giúp các nhà phát triển nhanh chóng triển khai hai nhu cầu này, chúng tôi cung cấp hai công cụ rút gọn sau.

Công cụ tóm tắt văn bản

Công cụ này nhận vào một user_id và đoạn văn bản cần tóm tắt, sau đó trả về đoạn văn bản đã tóm tắt. NeuronFlow sẽ sử dụng mô hình mặc định của workspace hiện tại để tóm tắt đoạn văn bản dài.

Công cụ thu thập thông tin từ trang web

Công cụ này nhận vào một liên kết trang web để thu thập và một user_agent (có thể để trống), và trả về một chuỗi chứa thông tin của trang web đó. user_agent là một tham số tùy chọn có thể được sử dụng để nhận dạng công cụ. Nếu không được truyền vào, NeuronFlow sẽ sử dụng user_agent mặc định.

Biến

Chúng ta đã giới thiệu biến (variable pool) trong Tool để lưu trữ các biến, tệp,... được tạo ra trong quá trình vận hành công cụ. Những biến này có thể được sử dụng bởi các công cụ khác trong quá trình vận hành.

Tiếp theo, chúng ta sẽ sử dụng DallE3Vectorizer.AI làm ví dụ để giới thiệu cách sử dụng biến nhớ.

  • DallE3 là một công cụ tạo hình ảnh có thể tạo ra hình ảnh dựa trên văn bản. Ở đây, chúng ta sẽ sử dụng DallE3 để tạo ra logo cho cửa hàng cà phê.

  • Vectorizer.AI là một công cụ chuyển đổi hình ảnh vector, có thể chuyển đổi hình ảnh thành hình ảnh vector sao cho hình ảnh có thể được phóng to vô tận mà không bị biến dạng. Ở đây, chúng ta sẽ chuyển đổi biểu trưng PNG được tạo bởi DallE3 thành một hình ảnh vector, để nó có thể thực sự được sử dụng bởi các nhà thiết kế.

DallE3

Đầu tiên, dùng DallE3. Sau khi tạo ảnh, chúng ta lưu ảnh vào variable pool. Code như sau:

Lưu ý rằng chúng tôi đã sử dụng self.VARIABLE_KEY.IMAGE.value như là tên biến của hình ảnh. Để các công cụ của nhà phát triển có thể hợp tác với nhau, chúng tôi đã định nghĩa KEY này. Bạn có thể sử dụng nó tự do, hoặc bạn có thể chọn không sử dụng KEY này. Việc truyền một KEY tùy chỉnh cũng được chấp nhận.

Vectorizer.AI

Tiếp theo, chúng ta sử dụng Vectorizer.AI để chuyển đổi biểu tượng PNG được tạo bởi DallE3 thành hình ảnh vector. Hãy cùng xem qua các hàm mà chúng ta đã định nghĩa ở đây. Code như sau:

Tiếp theo, hãy triển khai ba functions.

Lưu ý rằng chúng ta thực tế không sử dụng image_id ở đây. Chúng ta giả định rằng phải có một hình ảnh trong variable pool mặc định khi gọi công cụ này, do đó chúng ta trực tiếp sử dụng image_binary = self.get_variable_file(self.VARIABLE_KEY.IMAGE) để lấy hình ảnh. Trong các trường hợp mà khả năng của mô hình yếu, chúng tôi khuyến nghị các nhà phát triển cũng làm như vậy, điều này có thể cải thiện đáng kể tính chịu lỗi và tránh việc mô hình truyền tham số sai.

Last updated