当前位置: 首页 > news >正文

本地佛山顺德网站设计开发网站建设公司

本地佛山顺德网站设计,开发网站建设公司,建设网站市场规模,手机h5制作小程序作者:来自 Elastic Ryan_Earle 本教程介绍如何设置 Elasticsearch 网络爬虫,将网站索引到 Elasticsearch 中,然后利用 ChatGPT 使用我们的私人数据来总结对其提出的问题。 Python 脚本的 Github Repo:https://github.com/Gunner…

作者:来自 Elastic Ryan_Earle

本教程介绍如何设置 Elasticsearch 网络爬虫,将网站索引到 Elasticsearch 中,然后利用 ChatGPT 使用我们的私人数据来总结对其提出的问题。

Python 脚本的 Github Repo:https://github.com/Gunnerva/elastic_chatgpt/

目标:

了解如何使用 Elasticsearch 作为 ChatGPT 的私有数据存储。

流程

1. 创建 ESS 部署

要开始本教程,我们将首先创建 ESS 部署。
在 ESS 上创建 Elasticsearch 集群 8.17 或更高版本。确保它至少包含 1 个机器学习节点。

建议的最小配置:

  • 2 个 8GB 热节点
  • 1 个 2GB 机器学习节点(确保未启用机器学习自动扩展,这有助于了解这些机器学习过程对你的资源的影响)。部署模型时,模型的分配越多,所需的内存就越多。

请注意此过程中机器学习节点的使用情况。根据你决定定位的网站,机器学习节点可能是你的瓶颈。这是因为必须对文档进行索引,然后机器学习节点将在提取文档时将下一步中引用的嵌入模型应用于文档。

布局示例:

你的 Elasticsearch 集群需要可供远程 AI 源使用。这不需要 ESS,但它是最容易快速实现的。一般来说,本地部署需要防火墙规则等...以允许远程 AI 连接到本地 Elasticsearch 集群。

2. 设置嵌入模型

在抓取我们的网站以创建与 ChatGPT 交互的私有索引之前,我们需要将嵌入模型加载到 Elasticsearch 中。

对于此示例,我们将使用由 SentenceTransformers 训练并托管在 Hugging Face 模型中心的 all-distilroberta-v1 (sentence-transformers/all-distilroberta-v1 · Hugging Face) 模型。可以使用其他模型,但此特定模型适合一般用途,并且是在涵盖各种主题的大型数据集上进行训练的。

此特定模型不是此设置工作所必需的。它适合一般用途,因为它是在涵盖广泛主题的非常大的数据集上进行训练的。但是,对于向量搜索用例,使用针对你的特定数据集进行微调的模型通常会提供最佳结果。例如,如果你正在搜索科学研究论文,此模型可能不是最好的。

为此,我们将使用 Elastic 创建的 Eland Python 库(

python3 -m pip install 'eland[pytorch]'

GitHub - elastic/eland:用于 Elasticsearch 中的 DataFrames、大数据、机器学习和 ETL 的 Python 客户端和工具包)。该库提供了广泛的数据科学功能,但我们将使用它作为桥梁,将模型从 Hugging Face 模型中心加载到 Elasticsearch 中,以便将其部署在机器学习节点上进行推理。

Eland 可以从命令行、docker 容器或作为 Python 脚本的一部分运行。

从命令行安装(使用 Ubuntu 20.04 的示例)。此处有其他 Docker 说明:导入训练后的模型和词汇表 | Elastic Stack 中的机器学习 [8.17] | Elastic

:你可以参考我之前的的文章 “Elasticsearch:如何部署 NLP:文本嵌入和向量搜索” 来进行部署。

步骤 1:在你的机器上安装 eland 或使用 Docker(请参阅上面的链接了解 Docker 说明):

python3 -m pip install 'eland[pytorch]'

步骤 2 :复制你的 ESS 部署 URL

转到 https://cloud.elastic.co 并登录。选择目标部署旁边的 “Manage”。单击 Elasticsearch 旁边的 “Copy Endpoint”

步骤 3:将模型加载到 Elasticsearch

使用你从云控制面板(Cloud Control Panel)复制的 URL、Elastic 用户名和密码 —— 完成以下命令并执行。

以下命令将把 hub-model 加载到你的机器学习节点上并自动启动它。

eland_import_hub_model --url https://test-f22762.es.us-central1.gcp.cloud.es.io:9243 -u elastic -p YOURPASSWORD --hub-model-id sentence-transformers/all-distilroberta-v1 --task-type text_embedding

步骤 4 - 登录 Kibana 并验证模型是否已启动

  • 登录 Kibana
  • 导航至 Machine Learning
  • 在模型管理下单击 “Trained Models”

3. 抓取你的数据

步骤 1:确定你想要抓取的网站。在此示例中,我们将抓取 NFL 名人堂(NFL's hall of fame)。

-- 我们不会设置排除项等...但应在生产中配置它们

步骤 2:登录 Kibana。

在 “Search” 下选择 Elasticsearch

步骤 3:单击 “ Web Crawlers”

步骤 4:单击 “New Web Crawler”

步骤 5:输入索引的名称。

它将以 “search” 作为前缀。例如:nfl-hof 将成为索引 search-nfl-hof

第 6 步:单击 “Create Index”

第 7 步:转到 “管理域” 添加要抓取的域。

单击 “Validate Domain”,然后单击 “Add Domain”。

示例:Players | Pro Football Hall of Fame | Pro Football Hall of Fame(球员 | 职业足球名人堂 | 职业足球名人堂)

第 8 步:转到管道

单击 “Unlock your custom pipelines” 下的 “Copy and Customize”

接下来查看 “Machine Learning Inference Pipelines” - 单击 “Add Inference Pipleine”

步骤 9:选择密集向量文本嵌入 sentence-transformers__all-distilroberta-v1 然后点击继续

步骤 10:在“Select Field Mappings” 下选择 “Title”,然后单击 “Add”

第 11 步:单击 “Continue”,直到看到 “Create Pipeline”,然后单击 “Create Pipeline”

步骤12:单击 “Crawl”

步骤 13:检查网络爬虫索引并确保文档被填充到搜索索引中

第 14 步:执行测试查询,确保你有兴趣发送到 ChatGPT 的文档已被提取到 Elasticsearch 中

示例查询,以确保 Walter Payton 文档已被提取到索引中。

GET search-nfl-hofx/_search
{"query": {"match": {"title" : "Walter Payton"}}
}

4. 安装 Streamlit

需要 Streamlit 来执行步骤 5 中引用的 python 脚本。这将创建界面。

pip install streamlit

通过从控制台发出以下命令来测试并确保 Streamlit 已成功安装:

streamlit hello

5. 下载 python 脚本。

链接:https://github.com/elastic/support/tree/master/chatgpt_demo

有两个选项:

  • A. 将 ESS 连接到 OpenAI 脚本:
    • hof_es_gpt_noBing.py
  • B. 将 ESS 连接到 OpenAI 并将 Bing 连接到 OpenAI
    • hof_es_gpt_withBing.py

在 Python 脚本中编辑索引名称以匹配你在设置网络爬虫时创建的索引的名称:hof_es_gpt_noBing.py 中的第 70 行

index = 'search-nfl-hofx'

6. 设置外部资源:

设置 OpenAI 的 ChatGPT:

要连接到 ChatGPT,你需要一个 OpenAI API 帐户和密钥。如果你还没有帐户,你可以创建一个免费帐户,你将获得初始免费积分。

转到 https://platform.openai.com 并单击注册。

创建帐户后,你需要创建一个 API 密钥:

  • 单击 API Keys。
  • 单击 Create new secret key。
  • 复制新密钥并将其保存在安全的地方,因为你将无法再次查看该密钥。

可选设置 Bing API —— 这将允许应用程序首先搜索 ESS 数据存储,然后如果找不到数据,则允许它通过 Bing 搜索互联网。

Bing Custom Search API:Bing Custom Search API | Microsoft Bing

7. 设置脚本

  • 步骤 1. 启动控制台
  • 步骤 2. 导航到保存 Python 脚本的目录
  • 步骤 3. 在控制台中定义脚本变量:

所需要的变量:

OpenAI API Key
ESS Cloud ID
ESS username
ESS password

可选(取决于脚本):

  • Bing API 密钥
  • Bing 端点

在运行 Python 脚本之前,我们需要在控制台中定义一些变量。如果你不使用 Bing 脚本,则可以跳过 Bing 变量 - 更改 API 密钥以匹配你的 API 密钥。以下密钥已被撤销(只是作为展示使用目的)。

export openai_api="sk-IduoyWxSoVRtGpJUiyY99QaGO70v8sf1agXvuuFrVUT3BlbkFJrUBcDHY-ervQgdun2Z7IkJa6YYXqCczk1NnrEzPSEA"
export cloud_id="814-test:dXMtY2VudHJhbDEuZ2NwLmNsb3VkLmVzLmlvOjQ0MyQ5ZDJiZDRlODc3YmM0YmQ0YWFhM2I4MjBlMzk2ZDhiYSQwYWM5YjRmMWEzZTg0ODdlOTlmZGM3OTVkZjg4YTUxNQ=="
export cloud_pass="aCu1A6hkhQAw6cso359o8IH5"
export cloud_user="elastic"
export bing_subkey="94b11de338384967a4ddb61b611d3c97"
export bing_endpoint="https://api.bing.microsoft.com/"

定义以下变量后执行脚本:

使用 streamlit 执行脚本:

streamlit run hof_es_gpt_noBing.py

示例

最终产品应该是什么样子或是什么样子的示例:

测试:

如何测试我们上传的模型:

POST _ml/trained_models/sentence-transformers__all-distilroberta-v1/_infer
{"docs": [{"text_field": "Halo is a military science fiction media franchise, originally developed and created by Bungie and currently managed and developed by 343 Industries, part of Microsofts Xbox Game Studios. The series launched in 2001 with the first-person shooter video game Halo: Combat Evolved and its tie-in novel, The Fall of Reach. The latest main game, Halo Infinite, was released in late 2021. Combat Evolved started life as a real-time strategy game for personal computers, turning into a first-person shooter exclusive to Microsoft's Xbox video game console after Bungie was acquired by the company. Bungie regained its independence in 2007, releasing additional Halo games through 2010 before moving on from the franchise. Microsoft established 343 Industries to oversee Halo going forward, producing games itself and in partnership with other studios."},{"text_field": "Sonic the Hedgehog[c] is a 1991 platform game developed by Sonic Team and published by Sega for the Genesis/Mega Drive. It was released in North America on June 23 and in PAL regions and Japan the following month. Players control Sonic the Hedgehog, who can run at near supersonic speeds; Sonic sets out on a quest to defeat Dr. Robotnik, a scientist who has imprisoned animals in robots and seeks the powerful Chaos Emeralds. The gameplay involves collecting rings as a form of health, and a simple control scheme, with jumping and attacking controlled by a single button. Development began in 1990 when Sega ordered its developers to create a game featuring a mascot for the company. The developers chose a blue hedgehog designed by Naoto Ohshima after he won an internal character design contest, and named themselves Sonic Team to match their character. It uses a novel technique that allows Sonic's sprite to roll along curved scenery which was based on a concept by Oshima from 1989.[2] Sonic the Hedgehog, designed for fast gameplay, was influenced by games by Super Mario series creator Shigeru Miyamoto. The music was composed by Masato Nakamura, bassist of the J-pop band Dreams Come True."}],"inference_config": {"text_embedding": {}}
}

获取我们上传的模型的统计信息:

GET _ml/trained_models/sentence-transformers__all-distilroberta-v1/_stats

测试查询:

传统查询:

POST search-nfl-hof/_search
{"size": 1,"query": {"bool": {"must": [{"match": {"title": {"query": "Walter Payton","boost": 1}}},{"knn": {"field": "ml.inference.title.predicted_value","num_candidates": 20,"query_vector_builder": {"text_embedding": {"model_id": "sentence-transformers__all-distilroberta-v1","model_text": "Walter Payton"}},"boost": 24}}],"filter": [{"exists": {"field": "ml.inference.title.predicted_value"}}]}}
}

KNN Query:

POST search-nfl-hof/_search
{"size" : 1,"query" : {"bool" : {"must" : {"knn": {"field": "ml.inference.title.predicted_value","num_candidates": 20,"query_vector_builder": {"text_embedding": {"model_id": "sentence-transformers__all-distilroberta-v1","model_text": "Tell me about Tom Brady"}},"boost": 24}}}}}

原文:Dec 16th, 2024: [EN] ChatGPT Summary with ESS as your Private Datastore - Advent Calendar - Discuss the Elastic Stack

http://www.hkea.cn/news/249241/

相关文章:

  • 安徽建设厅网站地址网络广告推广方式
  • 门户网站内容管理建设方案企业关键词优化推荐
  • 北京网站建设公司飞沐小学生一分钟新闻播报
  • 企业网站建设申请域名seo赚钱
  • 2017网站开发前景百度网盘资源链接入口
  • 平面广告设计主题seo是怎么优化上去
  • 正规网站制作公司哪家好四年级写一小段新闻
  • 济南网站建设安卓版快手seo
  • java开发兼职网站开发线上推广平台
  • 北京网站建设开发公司网站自动收录
  • wordpress最多多少用户seo基础知识
  • 湘潭做网站 去磐石网络b站推出的短视频app哪个好
  • 宿迁做网站的公司有人看片吗免费观看视频
  • 什么人最需要建设网站淘宝运营一般要学多久
  • 海南网站优化东莞免费建站公司
  • 传播型网站建设优势有哪些推广类软文
  • 如何在百度做网站推广赚钱的软件
  • c# 网站开发教程周口网站seo
  • 湘西网站建设帮人推广注册app的平台
  • 切图做网站web制作网站的模板
  • 网站的做网站公司哪家好网络优化大师app
  • 国内外包网站今日头条(官方版本)
  • 外网建筑设计网站线上渠道推广有哪些方式
  • 厦门做网站公司排名电工培训机构
  • 武汉网站设计制作外包公司的人好跳槽吗
  • 网站建设哪里最好页面关键词优化
  • 清远建设网站制作seo系统培训课程
  • 网站的网页建设知识ppt北大青鸟职业技术学院简介
  • 巫山网站设计aso优化榜单
  • 关于节约化建设网站的表态发言网站制作报价表