当我们问ai一些专业术语或者公司的一些特定的名词之类的相关信息时,AI就算能联网搜索,往往给出的回答也不尽如人意,在这个基础上,运用RAG技术就可以有效的解决这一问题:

核心代码如下:

要在本地运行代码,需要在本地安装嵌入模型。嵌入模型的作用是把文本转换为向量数据(embedding),便于进行之后基于向量相似度的检索。LlamaIndex支持很多调用嵌入模型的方式,大家可以看看官网的介绍:
https://docs.llamaindex.ai/en/stable/api_reference/embeddings/ 这里我们在本地使用nomic-embed-text模型:
ollama pull nomic-embed-text:latest如果不下载这个模型的话,运行代码会报下面的错:

至于ollama 怎么安装和下载可以参考文章:Ollama搭配DeepSeek,本地部署全攻略
接下来我们运行代码提问:

注意事项:
1、在 LlamaIndex 中,通过嵌入模型解析文件后的结果通常是嵌入向量的形式,把文本信息转换为了数字:

提问时将问题转换为数字,再去与知识库中的数字进行匹配,返回相似度匹配比较高的

2、 LlamaIndex 中用于处理索引数据的几个不同方法的区别
在LlamaIndex中,index.as_retriever()、index.as_query_engine() 和 index.as_chat_engine() 是三种不同功能的接口,分别用于检索、问答和对话交互。以下是它们的区别:
index.as_retriever()index.as_query_engine()tree_summarize、compact 等)、流式输出等。index.as_chat_engine()index.as_retriever():适用于快速检索相关数据,不涉及后续处理。index.as_query_engine():适用于生成完整回答的问答场景,支持多种配置。index.as_chat_engine():适用于多轮对话场景,支持上下文记忆和动态交互。