Um rastreador escalável da web, aqui uma lista do recurso deste rastreador:
Ao salvar as representações em um banco de dados vetorial, você pode recuperar páginas semelhantes de acordo com a proximidade de dois vetores. Isso é fundamental para um navegador recuperar os resultados mais relevantes.
Execute o rastreador com o 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 Hospedar a API com uvicorn e FastAPI .
uvicorn api_app:app --host 0.0.0.0 --port 80 Dê uma olhada no exemplo em start_api_and_head_node.sh . Observe que os nós da cabeça do raio precisam ser inicializados primeiro.
Para o nosso caso de uso, simplesmente usamos o modelo BERT implementado pelo HuggingFace para extrair incorporação do texto da web. Mais precisamente, usamos o Bert-Base-ANSed. Observe que o código é agnóstico e os modelos novos podem ser registrados e adicionados com poucas linhas de código, dê uma olhada no llm/best.py .
Usamos o MILVUS como nosso principal software de administrador de banco de dados. Utilizamos um banco de dados em estilo vetorial devido à sua capacidade herdada de pesquisar e salvar entradas com base em representações vetoriais (incorporação).
Inicie seu servidor Milvus independente da seguinte forma, sugiro usar um software multiplexador como tmux :
tmux new -s milvus
milvus-server Dê uma olhada nos scripts/ para ver algumas das solicitações básicas para Milvus.
Você também pode usar o modelo oficial docker compose :
docker compose --file milvus-docker-compose.yml up -d Usamos Ray, é uma ótima estrutura Python para executar o processamento distribuído e paralelo. Ray segue o paradigma de trabalho mestre, onde um nó head solicitará que as tarefas sejam executadas aos trabalhadores conectados.
ray start --head import ray
# Connect to the head
ray . init ( "auto" )Caso você queira parar o nó raio:
ray stopOu verificar o status:
ray statusray startO nó do trabalhador não precisa ter a implementação do código, pois o nó principal serializará e enviará os argumentos e a implementação aos trabalhadores.
A implementação atual é um POC. Muitas melhorias podem ser feitas:
Todos os problemas e PRs são bem -vindos?