技术背景介绍
Google Vertex AI Search(前身为 Enterprise Search)是 Google Cloud 提供的 Vertex AI 机器学习平台的一部分。Vertex AI Search 让组织能够快速构建面向客户和员工的生成式 AI 搜索引擎。它基于各种 Google Search 技术,包括语义搜索,通过自然语言处理和机器学习技术推断内容中的关系和用户查询输入的意图,从而提供比传统关键词搜索技术更相关的结果。
核心原理解析
Vertex AI Search 依托 Google 在理解用户搜索方面的专业知识,并考虑内容的相关性以排序显示结果。它在 Google Cloud Console 和 API 可用,适用于企业工作流的集成。
代码实现演示
安装必要的库
首先,我们需要安装 langchain-google-community
和 google-cloud-discoveryengine
包:
%pip install -qU langchain-google-community google-cloud-discoveryengine
配置访问 Google Cloud 和 Vertex AI Search
在使用搜索工具之前,完成以下步骤:
- 创建搜索引擎并填充非结构化数据存储。
- 在 Google Cloud 控制台创建非结构化数据存储。
- 使用 Google Cloud 提供的示例文档填充数据存储。
配置和使用 Vertex AI Search 检索器
以下是配置和使用检索器的示例代码,适用于不同的数据类型(非结构化数据、结构化数据、网站数据,以及混合数据):
非结构化数据
from langchain_google_community import VertexAISearchRetriever
PROJECT_ID = "<YOUR PROJECT ID>" # 替换为您的项目ID
LOCATION_ID = "<YOUR LOCATION>" # 替换为您的数据存储位置
DATA_STORE_ID = "<YOUR DATA STORE ID>" # 替换为您的数据存储ID
retriever = VertexAISearchRetriever(
project_id=PROJECT_ID,
location_id=LOCATION_ID,
data_store_id=DATA_STORE_ID,
max_documents=3,
)
query = "What are Alphabet's Other Bets?"
result = retriever.invoke(query)
for doc in result:
print(doc)
非结构化数据(带抽取答案)
retriever = VertexAISearchRetriever(
project_id=PROJECT_ID,
location_id=LOCATION_ID,
data_store_id=DATA_STORE_ID,
max_documents=3,
max_extractive_answer_count=3,
get_extractive_answers=True,
)
result = retriever.invoke(query)
for doc in result:
print(doc)
结构化数据
retriever = VertexAISearchRetriever(
project_id=PROJECT_ID,
location_id=LOCATION_ID,
data_store_id=DATA_STORE_ID,
max_documents=3,
engine_data_type=1,
)
result = retriever.invoke(query)
for doc in result:
print(doc)
网站数据(带高级索引)
retriever = VertexAISearchRetriever(
project_id=PROJECT_ID,
location_id=LOCATION_ID,
data_store_id=DATA_STORE_ID,
max_documents=3,
max_extractive_answer_count=3,
get_extractive_answers=True,
engine_data_type=2,
)
result = retriever.invoke(query)
for doc in result:
print(doc)
混合数据
retriever = VertexAISearchRetriever(
project_id=PROJECT_ID,
location_id=LOCATION_ID,
search_engine_id=SEARCH_ENGINE_ID,
max_documents=3,
engine_data_type=3,
)
result = retriever.invoke(query)
for doc in result:
print(doc)
多轮搜索
from langchain_google_community import VertexAIMultiTurnSearchRetriever
retriever = VertexAIMultiTurnSearchRetriever(
project_id=PROJECT_ID,
location_id=LOCATION_ID,
data_store_id=DATA_STORE_ID
)
result = retriever.invoke(query)
for doc in result:
print(doc)
应用场景分析
Vertex AI Search 可以应用于多种场景,包括企业内部知识库搜索、客户支持系统、专业文档搜索等。通过结合生成式 AI 和语义搜索技术,能够更好地满足用户的查询需求,提高搜索结果的准确性和相关性。
实践建议
- 在配置检索器时,确保根据具体应用场景选择合适的数据类型和参数设置。
- 根据实际需求,调整
max_documents
、max_extractive_answer_count
等参数,以获得最佳的搜索效果。 - 通过对数据进行预处理和优化,提升搜索引擎的性能和准确度。
如果遇到问题欢迎在评论区交流。
—END—