使用 PremAI Embeddings 和 LlamaIndex 进行嵌入向量生成

在这篇文章中,我们将介绍如何使用 PremAI Embeddings 和 LlamaIndex 进行嵌入向量生成。PremAI 是一个统一的平台,允许你以最小的努力构建强大的生产级生成式 AI 应用程序,使你可以更专注于用户体验和整体增长。

安装和设置

首先,我们需要安装 llama-indexpremai-sdk。你可以使用以下命令进行安装:

pip install premai llama-index

在继续之前,请确保你已经在 PremAI 上创建了账户并启动了一个项目。如果没有,请按照以下步骤操作:

  1. 在 PremAI 上登录或注册,并创建一个 API 密钥。
  2. 访问 app.premai.io 以进入项目的仪表盘。
  3. 创建一个项目,这将生成一个项目 ID。该 ID 将帮助你与已部署的应用程序进行交互。

恭喜你已经在 PremAI 上创建了第一个已部署的应用程序 🎉。现在我们可以使用 llama-index 与我们的应用程序进行交互。

设置 PremAIEmbeddings 实例

安装所需模块后,我们需要设置客户端。在这里假设我们的项目 ID 是 8,但请确保使用你的项目 ID,否则会抛出错误。在使用嵌入模型时,还需要传递模型名称。以下是 PremAI 上可用的模型列表:

提供商SlugContext Tokens
cohereembed-english-v3.0N/A
openaitext-embedding-3-small8191
openaitext-embedding-3-large8191
openaitext-embedding-ada-0028191
replicatereplicate/all-mpnet-base-v2N/A
togethertogethercomputer/Llama-2-7B-32K-InstructN/A
mistralaimistral-embed4096

要更改模型,只需复制 slug 并访问你的嵌入模型。

import os
import getpass
from llama_index.embeddings.premai import PremAIEmbeddings

if os.environ.get("PREMAI_API_KEY") is None:
    os.environ["PREMAI_API_KEY"] = getpass.getpass("PremAI API Key:")  # 输入你的 PremAI API Key

prem_embedding = PremAIEmbeddings(
    project_id=8,  # 使用你的项目 ID
    model_name="text-embedding-3-large"  # 使用你选择的模型
)

注释 : //中转API

调用嵌入模型

现在一切准备就绪,我们可以开始使用我们的嵌入模型进行单个查询以及多个查询(也称为文档)。

query = "Hello, this is a test query"
query_result = prem_embedding.get_text_embedding(query)

print(f"Dimension of embeddings: {len(query_result)}")
print(query_result[:5])

注释 : //中转API

可能遇到的错误

在使用 PremAI Embeddings 时,你可能会遇到以下错误:

  1. API Key 错误: 如果你的 API Key 不正确或过期,可能会抛出认证错误。确保你的 API Key 有效且正确。
  2. 项目 ID 错误: 如果项目 ID 不正确,可能会导致无法连接到正确的项目。请确保使用正确的项目 ID。
  3. 模型名称错误: 如果模型名称拼写错误或不可用,可能会抛出模型不可用错误。确保模型名称正确且可用。

如果你觉得这篇文章对你有帮助,请点赞,关注我的博客,谢谢!

参考资料:

  • 8
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这里提供一个使用AllenNLP库实现ELMo词向量生成的示例代码: ```python from allennlp.modules.elmo import Elmo, batch_to_ids import numpy as np # 加载预训练好的ELMo模型 options_file = 'https://s3-us-west-2.amazonaws.com/allennlp/models/elmo/2x4096_512_2048cnn_2xhighway_options.json' weight_file = 'https://s3-us-west-2.amazonaws.com/allennlp/models/elmo/2x4096_512_2048cnn_2xhighway_weights.hdf5' elmo = Elmo(options_file, weight_file, 2, dropout=0) # 定义输入文本 sentences = ['This is the first sentence.', 'This is another sentence.', 'And a third sentence.'] # 将文本转换为ELMo模型需要的输入格式 character_ids = batch_to_ids(sentences) # 生成ELMo词向量 embeddings = elmo(character_ids) # 将ELMo词向量转换为numpy数组 vectors = embeddings['elmo_representations'][0].detach().numpy() # 输出每个词汇的ELMo词向量 for i, sentence in enumerate(sentences): print(f'Sentence {i+1}:') for j, token in enumerate(sentence.split()): print(f'Token {j+1}: {token}') print(vectors[i][j]) print() ``` 这个代码片段中,我们使用了AllenNLP库中的`Elmo`模块来加载预训练好的ELMo模型。接着,我们定义了一个包含三个句子的文本列表,并将其转换为ELMo模型需要的输入格式。然后,我们使用`Elmo`模块的`forward`方法生成ELMo词向量。最后,我们将ELMo词向量转换为numpy数组,并输出每个词汇的ELMo词向量。 需要注意的是,使用ELMo生成向量的输入文本应该是分好词的,否则ELMo模型会按照字符级别进行编码,从而得到的词向量可能不够准确。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值