当前位置:   article > 正文

llamaindex实战-使用llama3对本地文档摘要查询_llamaindex 与 llama3

llamaindex 与 llama3

概述

本文介绍如何在llamaindex框架下,使用本地嵌入模型和llama3大模型来对文档摘要进行总结和查询。我这里让大模型读取的文档是一个英文文档,其格式是.txt的。当然,也可以是其他文档格式,比如:pdf,doc等。本文是一个完全私有化部署的例子。

摘要查询的设置

摘要查询要求 LLM 遍历许多(如果不是大多数)文档,以便合成答案。例如,摘要查询可以是下面的一种:

  • “这组文字的摘要是什么?”
  • “给我一份 X 个人在公司工作经历的摘要”。

一般来说,摘要索引适合这种用例。默认情况下,摘要索引会浏览所有数据。

根据经验,设置 response_mode="tree_summarize "也会带来更好的摘要结果。

index = SummaryIndex.from_documents(documents)

query_engine = index.as_query_engine(response_mode="tree_summarize")
response = query_engine.query("<summarization_query>")
  • 1
  • 2
  • 3
  • 4

查询流程

  1. 加载本地文本数据
  2. 通过嵌入模型对文本进行向量化,并对文本构建索引:注意嵌入模型我这里使用的下载到本地的BAAI/bge-base-en-v1.5嵌入模型。
  3. 通过索引来查询文本内容
  4. 通过大模型对文本摘要进行查询:使用ollama来使用本地大模型llama3。这里也可以换成其他大模型,比如支持中文的一些大模型,就可以通过中文提问。

完整代码如下

from llama_index.core import VectorStoreIndex, SimpleDirectoryReader, Settings
from llama_index.embeddings.huggingface import HuggingFaceEmbedding
from llama_index.llms.ollama import Ollama

# 加载数据
documents = SimpleDirectoryReader("data").load_data()

# 设置本地嵌入模型
local_model = "/opt/models/BAAI/bge-base-en-v1.5"
# bge-base embedding model
Settings.embed_model = HuggingFaceEmbedding(model_name=local_model)

# 设置本地大模型:llama3
Settings.llm = Ollama(model="llama3", request_timeout=360.0)

index = VectorStoreIndex.from_documents(
    documents, show_progress=True
)

# 设置查询模式
query_engine = index.as_query_engine(response_mode="tree_summarize")

# 查询问题设置
response = query_engine.query("What did the author do growing up?")

# 打印结果
print(response)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

总结

本文完全通过本地的大模型实现了和某个目录下的文本对话的功能。这里可以根据自己的需要来改变需要加载的数据目录,可以使用本地不同的大模型。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/903944
推荐阅读
相关标签
  

闽ICP备14008679号