Pyspur: Công Cụ Xây Dựng AI Agent Mã Nguồn Mở

Mark Ponomarev

Mark Ponomarev

17 tháng 6 2025

Pyspur: Công Cụ Xây Dựng AI Agent Mã Nguồn Mở

Pyspur là gì?

Pyspur là một nền tảng mã nguồn mở được thiết kế để tăng tốc phát triển các tác nhân AI bằng cách cung cấp một môi trường trực quan, dựa trên các node. Nó cho phép các kỹ sư xây dựng, gỡ lỗi và triển khai các quy trình làm việc AI phức tạp bằng cách kết nối các thành phần mô-đun trên một canvas kéo thả.

Vấn đề cốt lõi mà Pyspur giải quyết là sự thiếu minh bạch và chu kỳ lặp lại chậm chạp thường thấy trong phát triển AI. Nó giải quyết "địa ngục prompt" và "điểm mù quy trình làm việc" bằng cách cho phép nhà phát triển kiểm tra đầu vào và đầu ra của mọi bước trong logic của tác nhân theo thời gian thực. Nền tảng này bao gồm hỗ trợ tích hợp cho các mẫu nâng cao như Retrieval-Augmented Generation (RAG), cho phép điểm dừng "human-in-the-loop" (có sự can thiệp của con người), và có thể triển khai bất kỳ quy trình làm việc nào dưới dạng API sẵn sàng cho sản xuất chỉ với một cú nhấp chuột. Cuối cùng, Pyspur giúp các kỹ sư xây dựng các hệ thống AI đáng tin cậy và dễ gỡ lỗi hơn một cách nhanh chóng.

💡
Bạn muốn một công cụ kiểm thử API tuyệt vời có thể tạo ra Tài liệu API đẹp mắt?

Bạn muốn một nền tảng tích hợp, Tất cả trong Một cho Đội ngũ Phát triển của bạn để làm việc cùng nhau với năng suất tối đa?

Apidog đáp ứng tất cả các yêu cầu của bạn và thay thế Postman với mức giá phải chăng hơn nhiều!
button

Hãy bắt đầu nào!

1. Cài đặt Môi trường

Chọn tùy chọn cài đặt phù hợp nhất với mục tiêu của bạn. Đối với phát triển và thử nghiệm cục bộ, cài đặt pip là đủ. Đối với các hệ thống có khả năng mở rộng hoặc sản xuất, thiết lập dựa trên Docker được khuyến nghị vì nó cung cấp một môi trường container hóa, có thể tái tạo với một phiên bản PostgreSQL chuyên dụng.

Tùy chọn A: Cài đặt pip cục bộ

Yêu cầu tiên quyết: Python 3.11+

Cài đặt từ PyPI:

pip install pyspur

Khởi tạo Thư mục Dự án: Lệnh này tạo một khung dự án, bao gồm tệp .env để cấu hình.

pyspur init my-pyspur-project && cd my-pyspur-project

Khởi động Máy chủ: Cờ --sqlite chỉ đạo Pyspur sử dụng cơ sở dữ liệu SQLite cục bộ, loại bỏ sự phụ thuộc vào một máy chủ cơ sở dữ liệu riêng biệt.

pyspur serve --sqlite

Truy cập Giao diện người dùng (UI): Điều hướng đến http://localhost:6080 trong trình duyệt của bạn.

Tùy chọn B: Thiết lập Docker

Yêu cầu tiên quyết: Docker Engine

Thực thi Script Thiết lập: Lệnh này tải xuống và chạy một script shell sao chép kho lưu trữ Pyspur, cấu hình tệp docker-compose.dev.yml và khởi chạy ngăn xếp ứng dụng (frontend, backend, database).

curl -fsSL https://raw.githubusercontent.com/PySpur-com/pyspur/main/start_pyspur_docker.sh | bash -s pyspur-project

Truy cập Giao diện người dùng (UI): Điều hướng đến http://localhost:6080.


2. Hãy Xây dựng một Quy trình làm việc với Pyspur

Thay vì xây dựng từ đầu, chúng ta sẽ tải và phân tích một mẫu Pyspur hiện có. Cách tiếp cận này cung cấp cái nhìn thực tế về một quy trình làm việc không tầm thường.

Tải Mẫu:

Phân tích Quy trình làm việc:
Quy trình làm việc này được thiết kế để tạo ra một câu chuyện cười và sau đó tinh chỉnh nó. Nó sử dụng một BestOfNNode, một thành phần nâng cao chạy một prompt LLM N lần, sử dụng một lời gọi LLM khác để đánh giá N đầu ra và chọn ra cái tốt nhất.

Hãy cùng phân tích các node chính như được định nghĩa trong joke_generator.json:

input_node (InputNode): Node này định nghĩa điểm vào của quy trình làm việc.

JokeDrafter (BestOfNNode): Đây là giai đoạn đầu tiên của việc tạo câu chuyện cười.

JokeRefiner (BestOfNNode): Node này lấy câu chuyện cười đã soạn thảo và cải thiện nó.

Liên kết (Links): Mảng links trong JSON định nghĩa luồng dữ liệu:
input_node -> JokeDrafter -> JokeRefiner.

Thực thi và Kiểm tra:


3. Triển khai một Pipeline RAG

Mặc dù không phải là một phần của bộ tạo câu chuyện cười, Retrieval-Augmented Generation (RAG) là một khả năng quan trọng của Pyspur. Dưới đây là quy trình kỹ thuật để thêm kiến thức vào một tác nhân:

  1. Nạp Tài liệu (Collection): Điều hướng đến phần RAG. Khi bạn tạo một "Document Collection" và tải lên một tệp (ví dụ: PDF), Pyspur khởi tạo một quy trình backend phân tích tài liệu thành văn bản, phân đoạn nó thành các khối có thể cấu hình dựa trên độ dài token, và lưu trữ các khối này cùng với siêu dữ liệu nguồn trong cơ sở dữ liệu của nó.
  2. Vector hóa (Index): Tạo một "Vector Index" từ một collection kích hoạt một quy trình khác. Pyspur lặp qua từng khối văn bản, thực hiện một lời gọi API tới một mô hình nhúng được chỉ định (ví dụ: text-embedding-ada-002 của OpenAI) để lấy biểu diễn vector, và upsert các vector này vào một cơ sở dữ liệu vector đã cấu hình (ví dụ: ChromaDB, PGVector).
  3. Truy xuất (Workflow Node): Trong một quy trình làm việc, Retriever Node được cấu hình để trỏ đến một Vector Index cụ thể. Khi chạy, query đầu vào của nó được nhúng bằng cùng một mô hình, và một tìm kiếm ngữ nghĩa (approximate nearest neighbor) được thực hiện đối với cơ sở dữ liệu vector để lấy các khối văn bản liên quan nhất. Các khối này sau đó được truyền dưới dạng ngữ cảnh cho một LLM ở downstream.

4. Triển khai dưới dạng API Sản xuất

Khi quy trình làm việc của bạn đã hoàn tất, bạn có thể xuất nó dưới dạng một điểm cuối HTTP an toàn.

Khởi tạo Triển khai: Nhấp vào nút "Deploy" trong thanh điều hướng trên cùng.

Chọn Loại Lời gọi API:

Tích hợp với Ứng dụng của Bạn:
Cửa sổ triển khai tạo mã client. Phần thân của yêu cầu POST phải là một đối tượng JSON trong đó khóa initial_inputs chứa một đối tượng có các khóa khớp với title của các node đầu vào của bạn.

Ví dụ Client Python (cho Bộ tạo Câu chuyện cười):

import requests
import json
import time

PYSUR_HOST = "http://localhost:6080"
WORKFLOW_ID = "your_workflow_id_here" # Lấy từ cửa sổ deploy

# Các khóa trong dict này phải khớp với 'output_schema' của input_node
payload = {
    "initial_inputs": {
        "input_node": {
            "topic": "Python decorators",
            "audience": "Senior Software Engineers"
        }
    }
}

# 1. Bắt đầu chạy bất đồng bộ
start_url = f"{PYSUR_HOST}/api/wf/{WORKFLOW_ID}/start_run/?run_type=non_blocking"
start_resp = requests.post(start_url, json=payload)
run_id = start_resp.json()['id']
print(f"Workflow started with run_id: {run_id}")

# 2. Thăm dò kết quả
status_url = f"{PYSUR_HOST}/api/runs/{run_id}/status/"
while True:
    status_resp = requests.get(status_url)
    data = status_resp.json()
    status = data.get("status")
    print(f"Current status: {status}")
    if status in ["COMPLETED", "FAILED"]:
        print("Final Output:")
        print(json.dumps(data.get("outputs"), indent=2))
        break
    time.sleep(2)

Kết luận

Pyspur cung cấp một môi trường mạnh mẽ, minh bạch và dựa trên kỹ thuật để phát triển tác nhân AI. Bằng cách trừu tượng hóa các thao tác riêng lẻ thành các node mô-đun và cung cấp một canvas trực quan, nó cho phép các kỹ sư tập trung vào logic cấp cao của các tác nhân của họ. Sức mạnh thực sự của nền tảng nằm ở khả năng kiểm tra sâu sắc của nó—cho phép bạn theo dõi luồng dữ liệu và gỡ lỗi I/O của từng thành phần—và sự chuyển đổi liền mạch từ nguyên mẫu trực quan sang API sẵn sàng cho sản xuất. Việc chuyển từ các tác nhân gọi đơn giản sang các quy trình làm việc phức tạp, nhiều giai đoạn sử dụng các mẫu như Best-of-N hoặc RAG không chỉ khả thi mà còn trực quan. Bằng cách xây dựng với Pyspur, bạn không chỉ kết nối các hộp; bạn đang thiết kế các hệ thống AI đáng tin cậy, dễ gỡ lỗi và có khả năng mở rộng.

💡
Bạn muốn một công cụ kiểm thử API tuyệt vời có thể tạo ra Tài liệu API đẹp mắt?

Bạn muốn một nền tảng tích hợp, Tất cả trong Một cho Đội ngũ Phát triển của bạn để làm việc cùng nhau với năng suất tối đa?

Apidog đáp ứng tất cả các yêu cầu của bạn và thay thế Postman với mức giá phải chăng hơn nhiều!
button

Thực hành thiết kế API trong Apidog

Khám phá cách dễ dàng hơn để xây dựng và sử dụng API