Ollama利用嵌入模型实现RAG应用

Ollama提供mxbai-embed-large等嵌入模型,用于结合文本提示进行文档检索和生成。通过示例展示了如何使用Python和ChromiumDB存储和检索文档向量,以回答相关问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Ollama支持embedding models嵌入模型,从而支持RAG(retrieval augmented generation)应用,结合文本提示词,检索到文档或相关数据。嵌入模型是通过训练生成向量嵌入,这是一长串数字数组,代表文本序列的关联关系。
1
Ollama的嵌入模型有三种:mxbai-embed-large、nomic-embed-text 、all-minilm。

使用

ollama pull mxbai-embed-large

python接口调用:

ollama.embeddings(
  model='mxbai-embed-large',
  prompt='Llamas are members of the camelid family',
)

样例

生成embeddings

pip install ollama chromadb

创建文件:example.py:

import ollama
import chromadb

documents = [
  "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]
  )

检索

# 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]

输出数据

# generate a response combining the prompt and data we retrieved in step 2
output = ollama.generate(
  model="llama2",
  prompt=f"Using this data: {data}. Respond to this prompt: {prompt}"
)

print(output['response'])

What animals are llamas related to?

Llamas are members of the camelid family, which means they are closely
related to two other animals: vicuñas and camels. All three species
belong to the same evolutionary lineage and share many similarities in
terms of their physical characteristics, behavior, and genetic makeup.
Specifically, llamas are most closely related to vicuñas, with which
they share a common ancestor that lived around 20-30 million years
ago. Both llamas and vicuñas are members of the family Camelidae,
while camels belong to a different family (Dromedary).

参考

https://ollama.com/blog/embedding-models

MySQL Workbench是一个用于管理和操作MySQL数据库的图形化工具。下面是安装和使用MySQL Workbench的步骤: 1. 下载MySQL Workbench:在MySQL官方网站上下载适合您操作系统的MySQL Workbench安装包。链接:https://www.mysql.com/downloads/workbench/ 2. 安装MySQL Workbench:双击安装包,并按照安装向导提示完成安装过程。 3. 启动MySQL Workbench:安装完成后,可以在开始菜单或桌面上找到MySQL Workbench的快捷方式,双击打开。 4. 连接到MySQL数据库:在MySQL Workbench的首页,点击"+"按钮创建一个新的数据库连接。填写连接信息,包括主机、端口、用户名和密码等。 5. 测试连接:点击"Test Connection"按钮,确保能够成功连接到MySQL数据库。 6. 导航和管理数据库:成功连接后,您可以在左侧的导航面板中看到数据库服务器上的所有数据库。可以展开数据库并浏览其中的表、视图、存储过程等对象,也可以执行SQL查询和管理数据库用户等操作。 7. 使用查询编辑器:MySQL Workbench提供了一个内置的查询编辑器,可以编写和执行SQL查询。在顶部菜单栏中选择"Query"->"New Query Tab"打开一个新的查询选项卡,然后在编辑器中编写SQL语句,并点击运行按钮执行查询。 8. 数据库设计和建模:MySQL Workbench还提供了数据库设计和建模的功能。您可以使用ER图工具创建数据库模型,并自动生成SQL脚本来创建表和关系。 这些是MySQL Workbench的基本安装和使用步骤,希望能对您有所帮助!如有更多问题,欢迎继续提问。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小龙在山东

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值