目 录CONTENT

文章目录

利用 Amazon Bedrock 和 Amazon OpenSearch 构建智能混合 RAG 搜索方案

Administrator
2026-04-07 / 0 评论 / 0 点赞 / 0 阅读 / 0 字

📢 转载信息

原文链接:https://aws.amazon.com/blogs/machine-learning/building-intelligent-search-with-amazon-bedrock-and-amazon-opensearch-for-hybrid-rag-solutions/

原文作者:Arpit Gupta, Ashish Bhagam, and Ross Gabay


智能生成式 AI 助手代表了人工智能领域的重大进展。与基础聊天机器人不同,这些系统由大型语言模型(LLM)驱动,具备广泛的智能,能够进行开放式对话,并在执行后端任务时根据用户需求动态调整。

这些系统通过检索增强生成(RAG)技术,利用 API 调用和数据库查询实时获取特定业务数据,从而提供准确且时效性强的信息。本文将展示如何利用 Amazon Bedrock、Amazon Bedrock AgentCore、Strands Agents 和 Amazon OpenSearch 构建一个集成了语义搜索与文本搜索功能的生成式 AI 智能体。

混合检索的需求:当语义搜索不再足够时

在现实场景中,用户往往需要同时满足语义理解(如“豪华酒店”、“海景”)和精确条件过滤(如“迈阿密”、“特定日期”)的需求。仅依赖语义搜索可能导致地点匹配出现偏差,而仅依赖文本搜索则无法理解复杂的描述。混合搜索应运而生:

  • 语义搜索:用于理解自然语言描述,查找含义相似的内容。
  • 文本搜索:用于对位置、日期、标识符等结构化属性进行精确匹配。
流程图

智能体架构概述

该架构利用 Amazon Bedrock AgentCore 进行智能编排。智能体的工作循环包括:

  1. 分析:使用 Bedrock 的基础模型分析用户查询。
  2. 决策:根据需求决定调用哪些工具。
  3. 执行:调用混合搜索工具并提取参数。
  4. 响应:合成信息并回复用户。

通过集成 Amazon OpenSearch Serverless,我们可以将向量嵌入(语义)与结构化文本字段(过滤)结合在单一索引中,从而实现高性能的混合查询。

架构图

Strands 框架实现示例

我们使用 Strands 这一开源 AI 智能体框架来定义搜索工具:

from strands import tool
@tool
def hybrid_search(query_text: str, country: str = None, city: str = None):
    """ 执行结合语义理解与位置过滤的混合搜索 """
    vector = generate_embeddings(query_text)
    # 构建混合查询
    query = {
        "bool": {
            "must": [{"knn": {"embedding_field": {"vector": vector, "k": 10}}}],
            "filter": []
        }
    }
    if country: query["bool"]["filter"].append({"term": {"country": country}})
    # 执行 OpenSearch 查询...

结论

Amazon Bedrock、AgentCore 与 OpenSearch 的结合,为开发者构建复杂的 AI 助手提供了可扩展且安全的架构。这种混合检索方法不仅弥补了传统 RAG 的不足,还通过智能体编排提升了搜索的动态响应能力,使其在房地产、医疗、电商等需要兼顾语义理解与精确过滤的场景中表现卓越。




🚀 想要体验更好更全面的AI调用?

欢迎使用青云聚合API,约为官网价格的十分之一,支持300+全球最新模型,以及全球各种生图生视频模型,无需翻墙高速稳定,文档丰富,小白也可以简单操作。

0

评论区