240922-Ollama使用Embedding实现RAG

A. 最终效果

在这里插入图片描述

B. 参考代码

# [嵌入模型 · Ollama 博客 - Ollama 中文](https://ollama.org.cn/blog/embedding-models)# 步骤1:生成嵌入import ollama
import chromadbdocuments = ["Llamas are members of the camelid family meaning they're pretty closely related to vicuñas and camels","Llamas were first domesticated and used as pack animals 4,000 to 5,000 years ago in the Peruvian highlands","Llamas can grow as much as 6 feet tall though the average llama between 5 feet 6 inches and 5 feet 9 inches tall","Llamas weigh between 280 and 450 pounds and can carry 25 to 30 percent of their body weight","Llamas are vegetarians and have very efficient digestive systems","Llamas live to be about 20 years old, though some only live for 15 years and others live to be 30 years old",
]client = chromadb.Client()
collection = client.create_collection(name="docs")# store each document in a vector embedding database
for i, d in enumerate(documents):response = ollama.embeddings(model="mxbai-embed-large", prompt=d)embedding = response["embedding"]collection.add(ids=[str(i)],embeddings=[embedding],documents=[d])# 步骤2:检索# an example prompt
prompt = "What animals are llamas related to?"# generate an embedding for the prompt and retrieve the most relevant doc
response = ollama.embeddings(prompt=prompt,model="mxbai-embed-large"
)
results = collection.query(query_embeddings=[response["embedding"]],n_results=1
)
data = results['documents'][0][0]# 步骤3:生成
# generate a response combining the prompt and data we retrieved in step 2
output = ollama.generate(model="qwen2:7b",prompt=f"Using this data: {data}. Respond to this prompt: {prompt}"
)print(output['response'])

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

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

相关文章

Golang | Leetcode Golang题解之第423题从英文中重建数字

题目: 题解: func originalDigits(s string) string {c : map[rune]int{}for _, ch : range s {c[ch]}cnt : [10]int{}cnt[0] c[z]cnt[2] c[w]cnt[4] c[u]cnt[6] c[x]cnt[8] c[g]cnt[3] c[h] - cnt[8]cnt[5] c[f] - cnt[4]cnt[7] c[s] - cnt[6]…

手势识别-Yolov5模型-自制数据集训练

1、源码下载: 大家可以直接在浏览器搜索yolov5即可找到官方链接,跳转进github进行下载: 这里对yolov5模型补充说明一下,它是存在较多版本的,具体信息可在master->tags中查看,大家根据需要下载。这些不同…

二叉树(链式存储)

文章目录 一、树的基础概念二、二叉树2.1 概念 性质2.2 二叉树的存储2.2 二叉树的基本操作手动创建一棵二叉树遍历:前、中、后、层序获取树中节点的个数获取叶子节点的个数获取第K层节点的个数获取二叉树的高度检测值为value的元素是否存在判断一棵树是不是完全二叉…

青岛特某电新能源有限公司-充电业务流程及数据交互规范-集控前置-精简版V1.0

1 范围 本流程规定了特某电充电终端所属的集控器与特某电云平台前置之间的充电相关业务流程,明确两端之间的请求和响应。 2 术语 云平台:云平台是提供包括充电设备接入,充电设备信息采集,充电设备管 理,充电设备运维…

Gin框架入门(1)--路由搭建与Json处理

背景知识 为什么要使用Go框架 如果不使用框架,在创建服务器和调用端口时会遇到各种各样“奇怪”的问题(就是出错的排查方向可能达到十几种),而且这些问题很难有相似性。同时作为适应于微服务的一门语言,代码的规范化…

构建高可用和高防御力的云服务架构第三部分:ECS集群(3/5)

ECS(Elastic Compute Service)是一种基础云计算服务,它提供了可伸缩的计算能力,允许用户在不需要预先购买硬件的情况下,根据需求快速扩展或缩减资源。ECS在云计算中的作用主要体现在提供虚拟化的服务器,用户…

食探秘:Spring Boot校园周边美食发现平台

第三章 系统设计 3.1 系统概要设计 本校园周边美食探索及分享平台选择B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式。适合在互联网上进行操作,只要用户能连网,任何时间、任何地点都可以进行系统的操作使用。系统工作原理图如图3-1所…

专业学习|动态规划(概念、模型特征、解题步骤及例题)

一、引言 (一)从斐波那契数列引入自底向上算法 (1)知识讲解 (2)matlap实现递归 (3)带有备忘录的遗传算法 (4)matlap实现带有备忘录的递归算法 “&#xff1…

linux入门介绍(通俗易懂,快速理解linux)

什么是操作系统? 操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是配置在计算机硬件上的第一层软件,任何其它软件都必须在操作系统的支持下才能运行。 简单来说&#…

【LeetCode热题100】位运算

这篇博客先介绍了常见位运算操作,然后记录了关于位运算的几道题,包括判定字符是否唯一、丢失的数字、两整数之和、只出现一次的数字2、消失的两个数字。 在这一部分,我们不妨先来总结一下常见位运算操作: 1.基础位运算 >>…

fastadmin数据库创建说明文档

文章目录 数据库根据字段类型特殊字段以特殊字符结尾的规则注释说明 实例数字下拉列表日期时间文本框权重category_id --单选下拉框category_ids --多选下拉框deletetime --对应回收站status --对应tab常见问题 参考完结 数据库 这里提供的是数据库表字段规则在你创建表时使用…

Linux内核移植实战总结

直接参考【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.81 本文仅作为个人笔记使用,方便进一步记录自己的实践总结。 前两章我们简单了解了一下 Linux 内核顶层 Makefile 和 Linux 内核的启动流程,本章我们就来学习一下如何将 NXP官方提供的 Linux 内核移…

17.1ksm关注指标讲解 pod和node状态的统计

本节重点介绍 : 主要的应用 看状态数个数 根据13105大盘模板看ksm指标 节点指标pod和容器指标资源对象按namespace分布指标其他资源指标 主要的应用 看状态,举例图片数个数,举例图片 根据大盘模板 查看指标 https://grafana.com/grafana/dashboard…

Tomcat靶场攻略

一.CVE-2017-12615 1.首页抓包,修改为 PUT 方式提交 ,将jsp木马写到数据包中 2.哥斯拉默认秘钥连接 二.后台弱⼝令部署war包 1.制作WAR包,上传 将JSP⽊⻢压缩为ZIP格式,然后修改后缀为war 2.文件上传成功后,默认会在网站根目录下生成和wa…

Apache 中间件漏洞

CVE-2021-41773 环境搭建 docker pull blueteamsteve/cve-2021-41773:no-cgid 访问172.16.1.4:8080 使⽤curl http://172.16.1.4:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/etc/passwd

面向对象设计其他原则例题

答案:D 知识点: 面向对象设计其他原则 重用发布等价原则 重用的粒度就是发布的粒度 共同封闭原则 包中的所有类对于同一性质的变化应该是共同封闭的。一个变化若对一个包产生影响,则将对该包里的所有类产生影响,而对于其他的…

Fyne ( go跨平台GUI )中文文档-Fyne总览(二)

本文档注意参考官网(developer.fyne.io/) 编写, 只保留基本用法 go代码展示为Go 1.16 及更高版本, ide为goland2021.2​​​​​​​ 这是一个系列文章: Fyne ( go跨平台GUI )中文文档-入门(一)-CSDN博客 Fyne ( go跨平台GUI )中文文档-Fyne总览(二)-CSDN博客 Fyne…

如何为 Java 应用程序创建安装程序

在 Java 中编写桌面应用程序时,我们总是希望其外观和感觉能够尽量贴近原生应用程序。因为一个优秀的应用程序应该要能融入其中,为用户提供已经熟悉的体验。 Swing GUI 的外观和感觉: Metal vs. Native 在桌面上,用户的使用旅程并不是从应用程…

什么是频谱泄露?

参考:https://www.bilibili.com/video/BV17a411j7bH/?spm_id_from333.337.search-card.all.click&vd_source7a1a0bc74158c6993c7355c5490fc600 在理想情况下(周期信号且时间无限),信号经过 FFT 后可以得到理想的频谱 但在现实…

【iOS】引用计数(一)

【iOS】引用计数 文章目录 【iOS】引用计数前言ARC与MRC什么是引用计数的机制内存管理的思考方式自己生成的对象非自己生成的对象不再需要自己持有就释放无法释放非自己持有的对象 autorelease小结 前言 笔者最近开始学习了一下有关于引用计数的内容,写这篇博客来简…