llama-index rag框架笔记

张开发
2026/4/6 3:29:25 15 分钟阅读

分享文章

llama-index rag框架笔记
文章目录基础示例rag是一个概念。llama-index是一个实现rag的具体框架。基础示例1、安装依赖安装 LlamaIndex 核心和文件读取支持 pipinstallllama-index llama-index-readers-file 安装 Ollama 连接器(用于连接本地 LLM)pipinstallllama-index-llms-ollama llama-index-embeddings-ollama 这里用的阿里云百炼openApi所以额外安装如下依赖。 pipinstallllama-index-llms-dashscope llama-index-embeddings-dashscope2、创建data目录data目录下常见文件test.txt内容为阿里云百炼是阿里云推出的一站式大模型应用开发平台。 它集成了通义千问系列模型支持快速构建 RAG 应用。 LlamaIndex 可以通过 DashScope 连接器轻松调用百炼上的模型。3、创建python文件llama_index_demo.py代码importosfromllama_index.coreimportVectorStoreIndex,SimpleDirectoryReader,Settingsfromllama_index.llms.dashscopeimportDashScopefromllama_index.embeddings.dashscopeimportDashScopeEmbeddingdefmain():# 1. 设置 API Key# 建议将 Key 设置到环境变量中或者在这里直接替换字符串API_KEYos.getenv(DASHSCOPE_API_KEY,YOUR API KEY)print(f 代码读取到的API_KEY{API_KEY})# 2. 配置模型# model_name 可以是 qwen-turbo, qwen-plus, qwen-max 等llmDashScope(model_nameqwen-plus,api_keyos.getenv(DASHSCOPE_API_KEY))# 配置嵌入模型 (DashScope 提供了专门的 embedding 模型)# model_name 通常是 text-embedding-v1 或 text-embedding-v2embed_modelDashScopeEmbedding(model_nametext-embedding-v2,api_keyos.getenv(DASHSCOPE_API_KEY))# 将配置应用到全局设置Settings.llmllm Settings.embed_modelembed_model# 3. 加载数据ifnotos.path.exists(data):os.makedirs(data)withopen(data/test.txt,w,encodingutf-8)asf:f.write(阿里云百炼提供了一站式的大模型服务通义千问是其核心模型。)documentsSimpleDirectoryReader(data).load_data()print(f 成功加载了{len(documents)}个文档。)# 4. 构建索引print(⚙️ 正在构建向量索引 (调用百炼 Embedding API)...)indexVectorStoreIndex.from_documents(documents)# 5. 创建查询引擎query_engineindex.as_query_engine()# 6. 开始问答print(\n✅ 准备就绪请输入问题)whileTrue:queryinput(\n❓ 用户: )ifquery.lower()quitorquery.lower()exit:breaktry:# 这里会触发检索 - 组装提示词 - 调用通义千问 - 返回结果responsequery_engine.query(query)print(f 通义千问:{response})exceptExceptionase:print(f发生错误:{e})if__name____main__:main()4、运行该代码会弹出交互对话框5、依次测试如下问题看看效果阿里云百炼是什么# 期待效果 按照文档里的内容来答这段文档里提到了哪个核心模型# 期待效果 按照文档里的内容来答文档里提到的作者是谁# 期待效果 文本里并没有所以应该回答文档里没有提到文档里有没有说李彦宏是谁# 期待效果 文本里并没有所以应该回答文档里没有提到我想搭建一个 AI 应用这个平台能帮我吗# 期待效果 文档里并没有但是它可以智能的答出来实测输出结果和预期基本一致成功。

更多文章