使用LlamaIndex进行简单RAG业务

实际上LlamaIndex与LangChain一样都只是一个框架,只是简化开发难度的工具。而RAG业务,一般都是一些搞人工智能中小企业的噱头。或许是老板一时心血来头,觉得不能落后于潮流。而实际上这个业务很难赚钱和变现。
实际上AI应用这种东西就是给那些不用AI的人使用的,让他们觉得这东西很高大上,很不可思议。对于懂技术的人来说,实际上门槛并不高,而且很容易复制。
而RAG实质上就是加强版的搜索引擎,毕竟使用了深度学习的一些技术进行了向量化处理,因此实际召回率会高很多。一般都是用于内部知识库搭建,真没见几个公司真能靠它盈利的。
废话不多说,这里来看下如何通过本地部署的大语言模型与LlamaIndex库实现RAG检索。
假设你使用的模型是deepseek-r1,并使用Ollama进行部署。由于LlamaIndex默认与OpenAI捆绑很深,因此需要对其配置进行覆盖。首先安装如下的一些库:

pip install llama-index llama-index-embeddings-ollama llama-index-llms-ollama

接着是准备材料,这里用https://news.qq.com/rain/a/20250218A06UNT00https://news.qq.com/rain/a/20250218A054H000两篇文章作为示例,介绍其代码如何调用。
首先是第一篇文章的内容:

image

而第二篇文章的内容如下:
image

我们将这两篇文章的内容保存在本地content目录下,使用两个txt文本分别进行保存。
接着是相关代码的编写:

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

model_name = "deepseek-r1:1.5b"
timeout = 60.0
Settings.llm = Ollama(model=model_name,request_timeout=timeout)
Settings.embed_model = OllamaEmbedding(model_name=model_name,request_timeout=timeout)
documents = SimpleDirectoryReader("content").load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine()
response = query_engine.query("陈玉祥是谁?其职务是什么?")
print(response)

其最终输出类似如下:

<think>
好,我需要回答用户关于“陈玉祥是谁”和他职务的问题。首先,根据提供的上下文信息,我看到用户提到江苏省连云港市中级人民法院的
一起公开开庭审理案件,其中被告人陈玉祥被指控收受财物。

在2025年2月的文章中,提到了陈玉祥是河北省纪委原副书记、省监委原副主任,以及多个单位的高级官员。这表明他担任了领导职务,
可能包括高级职务如常委或副主任。

此外,文章还提到陈玉祥利用担任这些职位上的便利条件,为案件处理提供帮助,并且在项目承揽、企业经营等事项上提供了便利。这进
一步确认了他的高级职务和涉及的权力关系。

综上所述,陈玉祥被指控为高级官员,在多个单位担任重要职务,并且利用职权或地位形成的便利条件为案件处理提供了帮助。
</think>

陈玉祥是江苏省连云港市中级人民法院的一名高级官员,包括原副书记、原副主任在内的职位。

可以看到,我们成功使用LlamaIndex进行了信息的检索,并通过本地的DeepSeek-R1模型进行应答。虽然其结果可能不怎么正确。
可以看到,代码比较简单毫无技术难度。如果真的想这方面深入,还是认认真真读个研究生。那些本科就招聘的岗位一般都比较坑爹,而且薪资福利也是很一般。

posted @ 2025-03-17 20:52  月薪几千的牛马  阅读(151)  评论(0)    收藏  举报