LLMWebCrawler
1.0.0
可扩展的Web爬网,这里是此轨道的功能列表:
通过将表示形式保存到矢量数据库中,您可以根据两个向量的距离检索类似的页面。这对于浏览器检索最相关的结果至关重要。
用码头运行爬网:
$ 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用uvicorn和FastAPI托管API。
uvicorn api_app:app --host 0.0.0.0 --port 80在start_api_and_head_node.sh中查看示例。请注意,射线头节点需要先初始化。
对于我们的用例,我们只需使用拥抱面而实现的BERT模型来从Web文本中提取嵌入。更确切地说,我们使用Bert-Base-uncund。请注意,该代码是不可知论的,可以注册新模型并使用几行代码添加,请查看llm/best.py 。
我们使用MILVUS作为我们的主要数据库管理员软件。由于其继承的搜索能力和基于向量表示(嵌入)的搜索能力,因此我们使用了矢量式数据库。
按照以下方式启动您的独立Milvus服务器,建议使用tmux等多路复用器软件:
tmux new -s milvus
milvus-server在scripts/查看对Milvus的一些基本请求。
您也可以使用官方的docker compose模板:
docker compose --file milvus-docker-compose.yml up -d我们使用Ray,是很棒的Python框架来运行分布式和并行处理。 Ray遵循Master-Worker范式,在该范式上, head Node将要求将任务执行给连接的工人。
ray start --head import ray
# Connect to the head
ray . init ( "auto" )如果您想停止射线节点:
ray stop或检查状态:
ray statusray start工人节点不需要执行代码,因为头节点将序列化并将参数和实施提交给工人。
当前的实现是POC。可以做出许多改进:
欢迎所有问题和公关吗?