基于Llamaindex的网页内容爬取实战

news2024/12/14 12:52:07

目的

本文不关注如何解析网页 html 元素和各种 python 爬虫技术,仅作为一种网页数据的预处理手段进行研究。Llamaindex 也并不是爬虫技术的集大成者,使用它是为了后续的存查一体化。

在这里插入图片描述

安装依赖

pip install llama-index-readers-web
# pip install llama_index.embeddings.huggingface
# pip install llama_index.llms.ollama

注释部分是补充安装的内容。

测试一下

vim test-web-bs.py,官方示例默认代码:

from llama_index.core import VectorStoreIndex, download_loader

from llama_index.readers.web import BeautifulSoupWebReader

loader = BeautifulSoupWebReader()
documents = loader.load_data(urls=["https://google.com"])
index = VectorStoreIndex.from_documents(documents)
index.query("What language is on this website?")

上述这个代码是访问 openai 的,Google 也打不开,运行不了:

Could not load OpenAI embedding model. If you intended to use OpenAI, please check your OPENAI_API_KEY.
Original error:
No API key found for OpenAI.

而且单独使用 index.query("What language is on this website?") 也报错:AttributeError: ‘VectorStoreIndex’ object has no attribute ‘query’,大修,运行:

from llama_index.core import VectorStoreIndex, download_loader
from llama_index.core import Settings

from llama_index.readers.web import BeautifulSoupWebReader
from llama_index.embeddings.huggingface import HuggingFaceEmbedding
from llama_index.llms.ollama import Ollama

Settings.embed_model = HuggingFaceEmbedding(
    model_name="/root/RAGAll/models/bge-large-zh-v1.5"  # 替换为你的本地模型路径
)
Settings.llm = Ollama(
    base_url="http://10.11.12.13:11434",
    model="qwen2.5_7b",
    context_window=4096,
    request_timeout=120.0
)
loader = BeautifulSoupWebReader()
documents = loader.load_data(urls=["https://mp.weixin.qq.com/s/xxx-yyy"])
#print(documents)
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine(similarity_top_k=5, streaming=True)
your_query = "本文主要讲了什么?"
#print(query_engine.query(your_query).response)
response = query_engine.query(your_query)
response.print_response_stream()

改善一下

打印上面的 documents 观察到获取到的正文内容无用字符,边角料颇多。使用下面的 Loader,获取到的正文效果好很多。

from llama_index.readers.web import UnstructuredURLLoader
urls = [
    "https://mp.weixin.qq.com/s/xyz"
]

loader = UnstructuredURLLoader(
    urls=urls, continue_on_failure=False, headers={"User-Agent": "value"}
)

documents = loader.load_data()
print(documents)

报错 AttributeError: ‘VectorStoreIndex’ object has no attribute ‘query’

关于这个报错,查阅了官方文档,VectorStoreIndex 的确是没有 query 这个方法的,所以应该是官方示例 demo 写错了。

documents = loader.load_data(urls=["https://www.baidu.com"])
index = VectorStoreIndex.from_documents(documents).as_query_engine()
# 然后才可调用query方法
res = index.query("What language is on this website?")
# The language on this website is Chinese

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2259316.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CityEngine实践——常用cga文件解析系列(2)

上回书说到了: 3、RULES/COMPONENTS/MASSING/SUBURBAN_BLOCK DETACHED_HOUSES.CGA ROWHOUSES.CGA SEMI_DETACHED_HOUSES.CGA 4、RULES/COMPONENTS/MASSING/URBAN_BLOCK MONOBLOCK.CGA PERIMETER_8_SHAPE.CGA PERIMETER_MULTIPART.CGA 这个cga挺有意思&#xff0c…

[64]最小路径和⭐

[64]最小路径和⭐ 题目描述 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 **说明:**每次只能向下或者向右移动一步。 示例输入 示例 1: 输入:grid …

MATLAB中circshift函数的原理分析——psf2otf函数的核心

之所以讲到MATLAB中circshift函数,也是源于Rafael Gonzalez的这个图,作为前几篇答廖老师问的blog的基础。 Rafael Gonzalez的这个图无论从哪幅图到哪幅图都不是直接的傅里叶变换或傅里叶逆变换,需要循环移位,即circshift函数。 这…

LightningChart JS助力德国医疗设备商打造高精度肺功能诊断软件

项目背景: GANSHORN Medizin Electronic GmbH公司在德国开发、生产和销售肺功能诊断设备已有 40 多年历史,该公司专注于肺功能的可视化,其创新医疗技术通过开发先进的肺量测定测试、肺扩散分析和人体肺量测定测试解决方案取得了突破。GANSHO…

ssm-springmvc-学习笔记

简介 简单的来说,就是一个在表述层负责和前端数据进行交互的框架 帮我们简化了许多从前端获取数据的步骤 springmvc基本流程 用户在原本的没有框架的时候请求会直接调用到controller这个类,但是其步骤非常繁琐 所以我们就使用springmvc进行简化 当用…

django——admin后台管理1

一、admin后台管理 访问url进入: http://127.0.0.1:8000/admin ​ 创建超级管理用户 终端输入以下命令: python manage.py createsuperuser (py36_pingping) E:\django学习\day03-django入门\demo>python manage.py createsuperuser Username: mo…

【Python系列】异步 Web 服务器

???欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老…

PYNQ - 自定义含 DPU 的 overlay 层(MPSoC)

目录 1. 简介 2. 通过脚本构建 2.1 准备工作 2.2 通过 Makefile 构建 2.3 Makefile 源码及解析 2.3.1 源码-中文注释 2.3.2 主要功能分析 2.3.3 vivado batch 模式 2.3.4 package_xo 命令 2.3.5 vitis v 命令 2.4 DPU 参数 2.4.1 Arch 选项卡 2.4.2 Advanced 选项…

路径规划之启发式算法之十六:和声搜索算法(Harmony Search, HS)

和声搜索算法(Harmony Search, HS)是一种新兴的启发式全局搜索算法,是一种模拟音乐家即兴演奏过程的群体智能优化算法。这种算法由Zong Woo Geem等人在2001年提出,灵感来源于音乐家在寻找和声时的创造性思维过程。HS算法通过模拟音乐家演奏音乐时的选择过程来寻找问题的最优…

【Vulkan入门】14-ShowBySDL

文章目录 先叨叨关键代码Git信息main.cpp 运行结果接下来我会做什么重构代码在b站出一套视频 先叨叨 上篇我们让Vulkan渲染了一个三角形,但还没有把它显示出来。本篇介绍一下,如何使用SDL将这个图形显示出来。 原理其实很简单,就是将渲染的内…

uni-app多环境配置动态修改

前言 这篇文章主要介绍uniapp在Hbuilderx 中,通过工程化,区分不同环境、动态修改小程序appid以及自定义条件编译,解决代码发布和运行时手动切换问题。 背景 当我们使用uniapp开发同一个项目发布不同的环境二级路径不同时,这时候…

.NET平台使用C#设置Excel单元格数值格式

设置Excel单元格的数字格式是创建、修改和格式化Excel文档的关键步骤之一,它不仅确保了数据的正确表示,还能够增强数据的可读性和专业性。正确的数字格式可以帮助用户更直观地理解数值的意义,减少误解,并且对于自动化报告生成、财…

单目深度估计模型 lite-mono 测试

lite-mono 使用工业数据集kitti 进行训练,目的使用单目摄像头实现物体深度预测,关于kitti数据集的介绍和下载参考 (二)一文带你了解KITTI数据集-CSDN博客文章浏览阅读2.7w次,点赞64次,收藏294次。文章介绍…

单片机锂电池电量电压检测

一、引言 (一)锂电池电量检测的重要性简述 在如今这个科技飞速发展的时代,众多电子设备都依赖锂电池来供电,像我们日常使用的智能手机、平板电脑、笔记本电脑,还有出行必备的电动自行车、电动汽车等等,锂…

Android通过okhttp下载文件(本文案例 下载mp4到本地,并更新到相册)

使用步骤分为两步 第一步导入 okhttp3 依赖 第二步调用本文提供的 utils 第一步这里不做说明了,直接提供第二步复制即用 DownloadUtil 中 download 为下载文件 参数说明 这里主要看你把 destFileName 下载文件名称定义为什么后缀,比如我定义为 .mp4 下…

华为eNSP:VRRP

一、VRRP背景概述 在现代网络环境中,主机通常通过默认网关进行网络通信。当默认网关出现故障时,网络通信会中断,影响业务连续性和稳定性。为了提高网络的可靠性和冗余性,采用虚拟路由冗余协议(VRRP)是一种…

2.生成Transformation

目录 前言 Source FlatMap KeyBy sum print 总结 前言 以下面的WordCount为例 package com.wlh.p1;import org.apache.flink.api.common.functions.FlatMapFunction; import org.apache.flink.api.java.functions.KeySelector; import org.apache.flink.api.java.tuple…

PCL点云库入门——PCL库可视化之CloudViewer类简单点云信息显示

1、前言 可视化(visualization)涉及运用计算机图形学和图像处理技术,将数据转换成图像并在屏幕上展示,同时支持交互式处理。在PCL库中,一系列强大的可视化工具可供使用,其中较为流行的包括CloudViewer和PCL…

AI大模型学习笔记|多目标算法梳理、举例

多目标算法学习内容推荐: 1.通俗易懂讲算法-多目标优化-NSGA-II(附代码讲解)_哔哩哔哩_bilibili 2.多目标优化 (python pyomo pareto 最优)_哔哩哔哩_bilibili 学习笔记: 通过网盘分享的文件:多目标算法学习笔记 链接: https://pan.baidu.com…

印闪网络:阿里云数据库MongoDB版助力金融科技出海企业降本增效

客户背景 上海印闪网络科技有限公司,于2017年1月成立,投资方包括红杉资本等多家国际知名风投公司。公司业务聚焦东南亚普惠金融,常年稳居行业头部。创始团队来自腾讯,中国团队主要由运营、风控及产研人员组成,核心成员…