Type something to search...
改变用户体验:利用 Ibm Watsonx 发现和花岗岩模型构建人工智能对话式搜索

改变用户体验:利用 Ibm Watsonx 发现和花岗岩模型构建人工智能对话式搜索

AI对话搜索

我相信AI对话搜索的热潮引起了许多科技人士的关注。不可否认,它正在改变我们与数据和系统互动的方式。

AI对话搜索是一项颠覆性的技术,改变了用户与您的应用程序的互动方式。通过利用IBM Granite (LLM)watsonx Discovery和**检索增强生成 (RAG)**的强大功能,您可以创建一种搜索体验,使其更像是与知识丰富的助手进行自然对话,而不是查询数据库。

让我们深入探讨使用IBM watsonx Discovery、Assistant和Granite Model实现对话搜索的详细信息和代码演示。

什么是 IBM watsonx Discovery

IBM watsonx Discovery 是一个基于 AI 的解决方案,旨在增强 IBM watsonx Assistant、watsonx Orchestrate 等中的对话搜索能力。

它是一个 IBM 打包的 Elasticsearch,旨在提供跨多个渠道的业务特定内容的语义、联邦和向量搜索。

IBM watsonx Discovery 作为 watsonx Assistant 中的搜索集成

Elasticsearch (watsonx Discovery) 是 watsonx Assistant 中的一种搜索集成(附加组件),帮助您的助手获取最高排名的查询结果(上下文数据),并通过生成式 AI 助手向用户返回文本响应。

来源: https://developer.ibm.com/blogs/awb-watson-discovery-vs-watsonx-discovery-a-comparison/

Elasticsearch 通过利用自然语言处理 (NLP) 和向量搜索技术提供先进的语义搜索功能。与传统的基于关键词的搜索不同,后者专注于精确的术语匹配,语义搜索则解释用户查询背后的意图和上下文含义,以提供更相关的结果。

让我们通过一个例子来理解关键词搜索和语义搜索之间的区别。

关键词搜索与语义搜索

考虑查询:“我喜欢苹果.

  • 关键词搜索 匹配用户输入的确切词语与可用内容。例如,搜索“苹果”将检索包含“苹果”一词的文档,无论它们是指水果还是科技公司。这种方法不考虑用户的意图或搜索的上下文。
  • 语义搜索 则旨在理解用户的意图和搜索词的上下文含义。它使用自然语言处理 (NLP) 和机器学习来解释词语背后的含义。例如,如果用户搜索“苹果”,系统会分析上下文——例如用户的先前搜索或位置——以确定他们对水果还是公司感兴趣,并相应地提供结果。

通过实施语义搜索,您可以设计出更好地理解用户意图的系统,从而导致更准确和上下文相关的搜索结果。

够了理论!让我们开始一个动手的、逐步的指南,了解如何在Elasticsearch (watsonx Discovery) 中摄取和检索数据,然后在助手中配置它以实现对话搜索。

解决方案架构

Image 2

IBM watsonx Discovery与Assistant的高层架构

  1. 用户交互: 用户启动与watsonx Assistant的聊天。
  2. watsonx Assistant:
    • watsonx Assistant接收用户的查询。
    • 它决定是使用对话搜索功能(目前处于测试阶段)还是自定义扩展与Watsonx Discovery集成。
  3. 对话搜索/自定义扩展:
    • 对话搜索: 如果使用对话搜索(目前为测试版)功能,Watsonx Assistant直接与watsonx Discovery进行交互以执行搜索。
    • 自定义扩展: 如果使用自定义扩展,watsonx Assistant通过自定义扩展(OpenAPI)将查询发送给watsonx Discovery。
  4. watsonx Discovery:
    • watsonx Discovery接收来自Watsonx Assistant的查询(无论是直接还是通过自定义扩展)。
    • 它执行检索过程,可能是:
      • 关键词搜索 (BM25): 使用BM25算法的传统基于关键词的搜索。
      • 语义搜索 (ELSER): 使用像ELSER这样的模型进行语义搜索,以理解查询的上下文和含义。
      • 混合搜索: 结合BM25和ELSER的优点,以利用两种方法的优势。
  5. 检索结果:
    • watsonx Discovery根据使用的搜索方法获取高排名结果。
    • 这些结果被发送回watsonx Assistant。
  6. 响应生成:
    • watsonx Assistant使用watsonx.ai(例如,Granite模型)基于检索到的结果生成类人响应。
    • 生成的响应随后被发送回用户。

数据摄取

将数据摄取到Elasticsearch (ES) 是实现AI对话搜索功能的关键步骤。可以使用多种方法来适应不同的数据源和处理需求。以下是一些方法:

  • Elasticsearch REST API:ES提供RESTful API,允许直接索引数据。您可以使用HTTP请求将JSON文档发送到ES,从而实现与各种应用程序的简单集成。
  • 语言客户端:为了实现更无缝的集成,ES提供多种编程语言的客户端,如Java、Python和JavaScript。这些客户端通过提供与ES交互的本地接口来促进数据摄取。
  • 网络爬虫:ES提供一个网络爬虫,可以直接将网页内容提取并索引到ES中,使从网站摄取数据变得更容易,无需手动提取数据。
  • Kibana文件上传:对于一次性的测试和探索,Kibana提供一个文件上传工具,指导您设置索引和字段映射,允许您直接将单个文件上传到ES。

数据摄取使用语言客户端

步骤 1 — 要安装Elasticsearch的官方Python客户端,可以使用以下命令:

pip install elasticsearch

此命令安装最新版本的elasticsearch包,使您的Python应用程序能够与Elasticsearch集群进行交互。

步骤 2 — 安装后,可以按如下方式建立与Elasticsearch集群的连接:

from elasticsearch import Elasticsearch

client = Elasticsearch(    
    elasticsearch_url,
    verify_certs=False,
    basic_auth=(username, password),
    max_retries=10, 
    retry_on_timeout=True,
    request_timeout=300
)

print("连接状态:", client.ping())

步骤 3 — 要处理来自本地目录的文档并将其索引到Elasticsearch中,可以利用LlamaIndex中的SimpleDirectoryReader读取文件,使用LangChain中的RecursiveCharacterTextSplitter将文本拆分为可管理的块,并使用Elasticsearch Python客户端中的bulk助手高效地索引数据。

from llama_index import SimpleDirectoryReader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from elasticsearch import Elasticsearch, helpers
import os

directory_path = "path/to/your/documents"
reader = SimpleDirectoryReader(directory_path)
documents = reader.load_data()

text_splitter = RecursiveCharacterTextSplitter.from_tiktoken_encoder(
    chunk_size=1000,
    chunk_overlap=50
)

遍历加载的文档,将文本拆分为块,并准备批量索引的操作:

actions = []
for idx, doc in enumerate(documents):
    chunks = text_splitter.split_text(doc.text)
    for page_no, chunk in enumerate(chunks):
        action = {
            "_index": INDEX_NAME,
            "_id": f"{idx}_{page_no}",
            "_source": {
                "page_no": page_no,
                "title": os.path.basename(doc.metadata['file_path']),
                "url": "document",
                "text": chunk
            }
        }
        actions.append(action)

配置ElasticsearchStore以使用稀疏向量检索策略,该策略利用ELSER模型进行稀疏向量搜索:

vectorstore = ElasticsearchStore(
    index_name=INDEX_NAME,
    es_connection=es,
    strategy=ElasticsearchStore.SparseVectorRetrievalStrategy()
)

vectorstore.add_documents(docs)

通过遵循这些步骤,您可以有效地处理和索引来自本地目录的文档到Elasticsearch中,利用ELSER模型增强AI驱动的搜索能力。

文档摄取到Elasticsearch后,您可以打开Kibana用户界面查看索引或分块文档。

Image 3

Image 4

将watsonx Discovery与Assistant集成

在所有文档被导入后,我们可以使用对话搜索功能或基于OpenAPI的自定义扩展来连接watsonx Discovery。在本教程中,我将使用对话搜索功能。

步骤 — 1: 打开您的网页浏览器并导航到watsonx Assistant仪表板。登录后,点击主导航栏中的生成式AI菜单选项。在生成式AI部分,您将找到旨在集成搜索功能的对话搜索。

步骤 — 2: 在对话搜索部分,您将看到可用的搜索集成选项列表,例如Elasticsearch、Milvus、Watson Discovery和自定义服务。

步骤 — 3: 选择Elasticsearch后,系统会提示您提供有关Elasticsearch设置的具体细节(设置选项卡)。在索引名称字段中,输入您要搜索的Elasticsearch索引的确切名称。这对于准确的搜索结果至关重要。

步骤 — 4: 设置完成后,导航到Assistant中的预览菜单,并开始在聊天中提问。

结论

在本博客中,我们介绍了 watsonx Discovery,包括如何在 IBM watsonx Assistant 中使用 ELSER 进行语义搜索,以及如何使用 IBM watsonx.ai (Granite model) 生成类人响应以回答查询。

Related Posts

结合chatgpt-o3-mini与perplexity Deep Research的3步提示:提升论文写作质量的终极指南

结合chatgpt-o3-mini与perplexity Deep Research的3步提示:提升论文写作质量的终极指南

AI 研究报告和论文写作 合并两个系统指令以获得两个模型的最佳效果 Perplexity AI 的 Deep Research 工具提供专家级的研究报告,而 OpenAI 的 ChatGPT-o3-mini-high 擅长推理。我发现你可以将它们结合起来生成令人难以置信的论文,这些论文比任何一个模型单独撰写的都要好。你只需要将这个一次性提示复制到 **

阅读更多
让 Excel 过时的 10 种 Ai 工具:实现数据分析自动化,节省手工作业时间

让 Excel 过时的 10 种 Ai 工具:实现数据分析自动化,节省手工作业时间

Non members click here作为一名软件开发人员,多年来的一个发现总是让我感到惊讶,那就是人们还在 Excel

阅读更多
使用 ChatGPT 搜索网络功能的 10 种创意方法

使用 ChatGPT 搜索网络功能的 10 种创意方法

例如,提示和输出 你知道可以使用 ChatGPT 的“搜索网络”功能来完成许多任务,而不仅仅是基本的网络搜索吗? 对于那些不知道的人,ChatGPT 新的“搜索网络”功能提供实时信息。 截至撰写此帖时,该功能仅对使用 ChatGPT 4o 和 4o-mini 的付费会员开放。 ![](https://images.weserv.nl/?url=https://cdn-im

阅读更多
掌握Ai代理:解密Google革命性白皮书的10个关键问题解答

掌握Ai代理:解密Google革命性白皮书的10个关键问题解答

10 个常见问题解答 本文是我推出的一个名为“10 个常见问题解答”的新系列的一部分。在本系列中,我旨在通过回答关于该主题的十个最常见问题来分解复杂的概念。我的目标是使用简单的语言和相关的类比,使这些想法易于理解。 图片来自 [Solen Feyissa](https://unsplash.com/@solenfeyissa?utm_source=medium&utm_medi

阅读更多
在人工智能和技术领域保持领先地位的 10 项必学技能 📚

在人工智能和技术领域保持领先地位的 10 项必学技能 📚

在人工智能和科技这样一个动态的行业中,保持领先意味着不断提升你的技能。无论你是希望深入了解人工智能模型性能、掌握数据分析,还是希望通过人工智能转变传统领域如法律,这些课程都是你成功的捷径。以下是一个精心策划的高价值课程列表,可以助力你的职业发展,并让你始终处于创新的前沿。 1. 生成性人工智能简介课程: [生成性人工智能简介](https://genai.works

阅读更多
揭开真相!深度探悉DeepSeek AI的十大误区,您被误导了吗?

揭开真相!深度探悉DeepSeek AI的十大误区,您被误导了吗?

在AI军备竞赛中分辨事实与虚构 DeepSeek AI真的是它所宣传的游戏规则改变者,还是仅仅聪明的营销和战略炒作?👀 虽然一些人将其视为AI效率的革命性飞跃,但另一些人则认为它的成功建立在借用(甚至窃取的)创新和可疑的做法之上。传言称,DeepSeek的首席执行官在疫情期间像囤积卫生纸一样囤积Nvidia芯片——这只是冰山一角。 从其声称的550万美元培训预算到使用Open

阅读更多
Type something to search...