在本文中,我们将学习如何使用Cloudflare Workers AI进行文本嵌入。本文将介绍如何设置和使用该工具,并附上示例代码。使用这个工具可以方便地将文本转换为高维向量,对自然语言处理任务非常有帮助。
环境设置
首先,我们需要通过pip
安装Cloudflare Workers AI的库:
%pip install llama-index-embeddings-cloudflare-workersai
# %pip install -e ~/llama_index/llama-index-integrations/embeddings/llama-index-embeddings-cloudflare-workersai
要访问Cloudflare Workers AI,我们需要Cloudflare的账户ID和API令牌。请按照这份文档获取你的账户ID和API令牌。
初始化
我们可以使用以下代码进行初始化:
import getpass
my_account_id = getpass.getpass("Enter your Cloudflare account ID:\n\n")
my_api_token = getpass.getpass("Enter your Cloudflare API token:\n\n")
文本嵌入示例
以下代码展示了如何使用Cloudflare Workers AI进行文本嵌入:
from llama_index.embeddings.cloudflare_workersai import CloudflareEmbedding
my_embed = CloudflareEmbedding(
account_id=my_account_id,
auth_token=my_api_token,
model="@cf/baai/bge-small-en-v1.5",
)
embeddings = my_embed.get_text_embedding("Why sky is blue")
print(len(embeddings))
print(embeddings[:5])
示例输出:
384
[-0.04786296561360359, -0.030788540840148926, -0.07126234471797943, -0.04107927531003952, 0.02904760278761387]
批量嵌入
Cloudflare支持一次最多100个文本的批量嵌入。以下代码展示了如何进行批量嵌入:
embeddings = my_embed.get_text_embedding_batch(
["Why sky is blue", "Why roses are red"]
)
print(len(embeddings))
print(len(embeddings[0]))
print(embeddings[0][:5])
print(embeddings[1][:5])
示例输出:
2
384
[-0.04786296561360359, -0.030788540840148926, -0.07126234471797943, -0.04107927531003952, 0.02904760278761387]
[-0.08951402455568314, -0.015274363569915295, 0.04728245735168457, 0.05478525161743164, 0.05978189781308174]
示例代码
完整的示例代码如下:
import getpass
from llama_index.embeddings.cloudflare_workersai import CloudflareEmbedding
# 获取账户ID和API令牌
my_account_id = getpass.getpass("Enter your Cloudflare account ID:\n\n")
my_api_token = getpass.getpass("Enter your Cloudflare API token:\n\n")
# 初始化嵌入模型
my_embed = CloudflareEmbedding(
account_id=my_account_id,
auth_token=my_api_token,
model="@cf/baai/bge-small-en-v1.5",
)
# 单个文本嵌入
embeddings = my_embed.get_text_embedding("Why sky is blue")
print(len(embeddings))
print(embeddings[:5])
# 批量文本嵌入
batch_embeddings = my_embed.get_text_embedding_batch(
["Why sky is blue", "Why roses are red"]
)
print(len(batch_embeddings))
print(len(batch_embeddings[0]))
print(batch_embeddings[0][:5])
print(batch_embeddings[1][:5])
可能遇到的错误
- API令牌错误:如果提供的API令牌无效或过期,可能会导致身份验证失败。
- 网络问题:网络连接不稳定可能会导致请求超时或失败。
- 账户权限不足:确保你的API令牌具有访问Cloudflare Workers AI的权限。
如果你觉得这篇文章对你有帮助,请点赞,关注我的博客,谢谢!