240911-基于Ollama的22行代码实现极简交互式RAG问答

news2024/9/23 22:44:49

A. 最终效果

在这里插入图片描述

B. 环境配置

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

C. 代码程序

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

# 指定LLM
Settings.llm = Ollama(model="qwen2:7b", request_timeout=60.0)
# 指定 embedding model
Settings.embed_model = OllamaEmbedding(model_name="nomic-embed-text:latest")
## 剩下代码一样
documents = SimpleDirectoryReader("./data").load_data()
index = VectorStoreIndex.from_documents(documents)
chat_engine = index.as_chat_engine(chat_mode="condense_question", verbose=True)

mode = 2
if mode==1:
    print(chat_engine.chat("Yann LeCun在Nature上发表的Deep learning这篇论文的主要内容是什么?"))
elif mode == 2:
    while True:
        user_input = input("请输入描述(输入 'exit' 退出):")
        if user_input.lower() == 'exit':
            break
        print(chat_engine.chat(user_input))

D. 配置清单

  • requirements.txt
aiohappyeyeballs==2.4.0
aiohttp==3.10.5
aiosignal==1.3.1
annotated-types==0.7.0
anyio==4.4.0
asttokens==2.4.1
attrs==24.2.0
beautifulsoup4==4.12.3
certifi==2024.8.30
charset-normalizer==3.3.2
click==8.1.7
comm==0.2.2
dataclasses-json==0.6.7
debugpy==1.8.5
decorator==5.1.1
Deprecated==1.2.14
dirtyjson==1.0.8
distro==1.9.0
executing==2.1.0
frozenlist==1.4.1
fsspec==2024.9.0
greenlet==3.1.0
h11==0.14.0
httpcore==1.0.5
httpx==0.27.2
idna==3.8
ipykernel==6.29.5
ipython==8.27.0
jedi==0.19.1
jiter==0.5.0
joblib==1.4.2
jupyter_client==8.6.2
jupyter_core==5.7.2
llama-cloud==0.0.17
llama-index==0.11.8
llama-index-agent-openai==0.3.1
llama-index-cli==0.3.1
llama-index-core==0.11.8
llama-index-embeddings-ollama==0.3.0
llama-index-embeddings-openai==0.2.4
llama-index-indices-managed-llama-cloud==0.3.0
llama-index-legacy==0.9.48.post3
llama-index-llms-ollama==0.3.1
llama-index-llms-openai==0.2.3
llama-index-multi-modal-llms-openai==0.2.0
llama-index-program-openai==0.2.0
llama-index-question-gen-openai==0.2.0
llama-index-readers-file==0.2.1
llama-index-readers-llama-parse==0.3.0
llama-parse==0.5.5
marshmallow==3.22.0
matplotlib-inline==0.1.7
multidict==6.1.0
mypy-extensions==1.0.0
nest-asyncio==1.6.0
networkx==3.3
nltk==3.9.1
numpy==1.26.4
ollama==0.3.3
openai==1.44.1
packaging==24.1
pandas==2.2.2
parso==0.8.4
pexpect==4.9.0
pillow==10.4.0
platformdirs==4.3.2
prompt_toolkit==3.0.47
psutil==6.0.0
ptyprocess==0.7.0
pure_eval==0.2.3
pydantic==2.9.1
pydantic_core==2.23.3
Pygments==2.18.0
pypdf==4.3.1
python-dateutil==2.9.0.post0
pytz==2024.2
PyYAML==6.0.2
pyzmq==26.2.0
regex==2024.7.24
requests==2.32.3
six==1.16.0
sniffio==1.3.1
soupsieve==2.6
SQLAlchemy==2.0.34
stack-data==0.6.3
striprtf==0.0.26
tenacity==8.5.0
tiktoken==0.7.0
tornado==6.4.1
tqdm==4.66.5
traitlets==5.14.3
typing-inspect==0.9.0
typing_extensions==4.12.2
tzdata==2024.1
urllib3==2.2.2
wcwidth==0.2.13
wrapt==1.16.0
yarl==1.11.1

D. 参考文献

  • 9行代码开发一个基于ollama的私有化RAG
  • [Bug]: ImportError: llama-index-readers-file package not found · Issue #11336 · run-llama/llama_index

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2126509.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机毕业设计选题推荐-动漫插画分享网站-Java/Python项目实战

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…

Linux 工程师:探索开源世界的专业之路

摘要: 本文深入探讨了 Linux 工程师这一职业角色。从 Linux 操作系统的基础特性与架构开始阐述,详细分析了 Linux 工程师在不同领域的工作范畴,包括系统安装与配置、内核开发与优化、网络管理、安全防护等方面。文中还探讨了成为一名优秀 Lin…

vue3数据持久化方案:pinia-plugin-persistedstate源码浅析

概述 Pinia是vue3的官方推荐用于数据共享的库,但是Pinia🍍中的数据是存在于浏览器的内存中,当浏览器刷新后,这些数据就会消失。因此我们需要对数据做持久化存储,这个时候就需要用到pinia-plugin-persistedstate。 pinia-plugin-persistedstate本质上利用浏览器持久化存…

即插即用篇 | YOLOv8 引入高效的直方图Transformer模块 | 突破天气障碍:Histoformer引领高效图像修复新路径“

本改进已同步到YOLO-Magic框架! 摘要:摘要。基于Transformer的恶劣天气图像修复方法取得了显著进展。大多数方法通过沿通道维度或在空间上固定范围的块内使用自注意力,以减少计算负担。然而,这种折中方式在捕获长距离空间特征方面存在局限性。受到恶劣天气导致的退化因素主…

C++职工管理系统(具备增删改查功能 涉及文件操作、指针数组操作、升序降序、多态、虚函数)

目录 🌕需求分析🌕创建项目🌕完整代码🌙项目结构🌙include⭐worker.h (它是后面employ,boss,manager的基类)⭐boss.h⭐employee.h⭐manager.h⭐workerManager.h 🌙src⭐boss.cpp⭐em…

0911(绘制事件,qt中的网络通信)

一、实现一个时钟 1)代码 头文件&#xff1a; #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPainter> #include <QPaintEvent> #include <QTimer> #include <QTime> #include <QTimerEvent>QT_BEGIN_NAMESPACE nam…

如何用Google Trend进行SEO优化?方法与策略

做SEO的都知道&#xff0c;Google Trend是一款免费工具&#xff0c;用户可以查看不同关键词的搜索趋势、兴趣强度和区域分布。通过 Google Trends&#xff0c;你可以获得以下信息&#xff0c;这些数据可以帮助您更好地了解用户需求并优化您的SEO策略&#xff1a; 1、搜索量趋势…

线结构光测量系统标定--导轨

光平面标定原理可查看之前的博文《光平面标定》&#xff0c;光条中心提取可参考线结构光专栏光条中心提取系列的文章&#xff0c;相机标定参考相机标定专栏中的博文。&#xff08;欢迎进Q群交流&#xff1a;874653199&#xff09; 线结构光测量系统(指一个线结构光传感器与一个…

如何检查前端项目中我们没有使用的第三方包

问题描述&#xff1a;我们在赶项目或者在做些功能或者效果的时候往往会用到很多的第三方包&#xff0c;那么时间一长&#xff0c;我们有时候会忘记删除这些包到底该怎么办呢&#xff1f;接下来教给大家一个方法。 在我们的项目根目录下面随便起一个.js的文件 代码如下&#x…

算法工程师重生之第四天(两两交换链表中的节点 删除链表的倒数第N个节点 链表相交 环形链表II 总结 )

参考文献 代码随想录 一、两两交换链表中的节点 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。 示例 1&#xff1a; 输入&am…

掌握python的dataclass,让你的代码更简洁优雅!

"dataclass"是从"Python3.7"版本开始&#xff0c;作为标准库中的模块被引入。 随着"Python"版本的不断更新&#xff0c;"dataclass"也逐步发展和完善&#xff0c;为"Python"开发者提供了更加便捷的数据类创建和管理方式。 …

Element-UI 组件实现面包屑导航栏

Element-UI 组件实现面包屑导航栏 面包屑导航栏是一种辅助导航系统&#xff0c;它显示用户当前位置在网站或应用层次结构中的位置&#xff0c;可以帮助用户了解他们当前页面的位置&#xff0c;并且可以方便地返回到上级页面或首页。 面包屑导航栏的实现原理&#xff1a; 路径…

【网易低代码】第2课,页面表格查询功能

你好&#xff01; 这是一个新课程 CodeWave网易低代码 通过自然语言交互式智能编程&#xff0c;同时利用机器学 习&#xff0c;帮助低代码开发者进一步降低使用门槛、提高应用开发效率 【网易低代码】第2课&#xff0c;页面表格查询功能 1.拖拽表格组件到页面布局中2.服务端逻辑…

FFCD:森林火灾分类数据集(猫脸码客 第184期)

亲爱的读者们&#xff0c;您是否在寻找某个特定的数据集&#xff0c;用于研究或项目实践&#xff1f;欢迎您在评论区留言&#xff0c;或者通过公众号私信告诉我&#xff0c;您想要的数据集的类型主题。小编会竭尽全力为您寻找&#xff0c;并在找到后第一时间与您分享。 fores…

2024/9/11黑马头条跟学笔记(七)

1)今日内容介绍 搜索结果&#xff0c;搜索记录&#xff0c;搜索联想 搭建环境 索引&#xff0c;存储&#xff0c;分词 多条件复合查询 结果高亮处理 索引数据同步&#xff08;文章发布后创建索引 kafka&#xff09; 搭建mongodb&#xff0c;存储链和性能好过mysql 异步保…

56 - I. 数组中数字出现的次数

comments: true difficulty: 中等 edit_url: https://github.com/doocs/leetcode/edit/main/lcof/%E9%9D%A2%E8%AF%95%E9%A2%9856%20-%20I.%20%E6%95%B0%E7%BB%84%E4%B8%AD%E6%95%B0%E5%AD%97%E5%87%BA%E7%8E%B0%E7%9A%84%E6%AC%A1%E6%95%B0/README.md 面试题 56 - I. 数组中数…

【学习笔记】SSL证书密码套件之加密

本篇将介绍密码套件中加密常用的协议并将他们进行比较&#xff0c;包括&#xff1a;CHACHA20、AES-256-GCM、AES-128-GCM、AES-256-CBC、AES-128-CBC、3DES-CBC、RC4-128、DES-CBC 一、概念 &#xff08;选择以上合适协议&#xff09;对称加密算法 目的是保护批量数据传输流密…

linux从0到1 基础完整知识

1. Linux系统概述 Linux是一种开源操作系统&#xff0c;与Windows或macOS等操作系统不同&#xff0c;Linux允许用户自由地查看、修改和分发其源代码。以下是Linux系统的一些显著的优势。 稳定性和可靠性&#xff1a; 内核以其稳定性而闻名&#xff0c;能够持续运行数月甚至数…

Codeforces Round 971 (Div. 4)——C题题解

本题的大意是一个青蛙从原点开始跳格子(0,0)&#xff0c;最终要跳到点(x,y)去&#xff0c;并且每一步的步长不能超过k&#xff0c;问最短几步可以跳到终点 分析&#xff1a; 本题利用贪心思想&#xff0c;肯定是先跳最大的步长这样总体用的步数最长 代码演示&#xff1a; #inc…

等待唤醒机制和阻塞队列

1. 等待唤醒机制 由于线程的随机调度&#xff0c;可能会出现“线程饿死”的问题&#xff1a;也就是一个线程加锁执行&#xff0c;然后解锁&#xff0c;其他线程抢不到&#xff0c;一直是这个线程在重复操作 void wait() 当前线程等待&#xff0c;直到被其他线程唤醒 void no…