Perayap web yang dapat diskalakan, di sini daftar fitur crawler ini:
Dengan menyimpan representasi ke dalam database vektor, Anda dapat mengambil halaman yang sama sesuai dengan seberapa dekat dua vektor. Ini sangat penting bagi browser untuk mengambil hasil yang paling relevan.
Jalankan crawler dengan terminal:
$ python cli_crawl.py --help
options:
-h, --help show this help message and exit
-u INITIAL_URLS [INITIAL_URLS ...], --initial-urls INITIAL_URLS [INITIAL_URLS ...]
-lm LANGUAGE_MODEL, --language-model LANGUAGE_MODEL
-m MAX_DEPTH, --max-depth MAX_DEPTH Host API dengan uvicorn dan FastAPI .
uvicorn api_app:app --host 0.0.0.0 --port 80 Lihatlah contoh di start_api_and_head_node.sh . Perhatikan bahwa node kepala ray perlu diinisialisasi terlebih dahulu.
Untuk kasus penggunaan kami, kami cukup menggunakan model Bert yang diimplementasikan oleh Huggingface untuk mengekstrak embeddings dari teks web. Lebih tepatnya, kami menggunakan Bert-Base-Incased. Perhatikan bahwa kode tersebut adalah model agnostik dan baru dapat didaftarkan dan ditambahkan dengan beberapa baris kode, lihat ke llm/best.py .
Kami menggunakan Milvus sebagai perangkat lunak administrator database utama kami. Kami menggunakan basis data gaya vektor karena kemampuannya yang diwariskan untuk mencari dan menyimpan entri berdasarkan representasi vektor (embeddings).
Mulailah server Milvus mandiri Anda sebagai berikut, saya sarankan menggunakan perangkat lunak multiplexer seperti tmux :
tmux new -s milvus
milvus-server Lihatlah di bawah scripts/ untuk melihat beberapa permintaan dasar ke Milvus.
Anda juga dapat menggunakan template docker compose resmi:
docker compose --file milvus-docker-compose.yml up -d Kami menggunakan Ray, adalah kerangka kerja Python yang hebat untuk menjalankan pemrosesan terdistribusi dan paralel. Ray mengikuti paradigma master-pekerja, di mana node head akan meminta tugas untuk dieksekusi ke pekerja yang terhubung.
ray start --head import ray
# Connect to the head
ray . init ( "auto" )Jika Anda ingin menghentikan Node Ray:
ray stopAtau memeriksa statusnya:
ray statusray startNode pekerja tidak perlu memiliki implementasi kode karena simpul kepala akan membuat serialisasi dan mengirimkan argumen dan implementasi kepada pekerja.
Implementasi saat ini adalah POC. Banyak perbaikan dapat dilakukan:
Semua masalah dan PR dipersilakan?