Elasticsearch 开放推理 API 增加了对 Anthropic 的 Claude 的支持

2024-08-30 21:52

本文主要是介绍Elasticsearch 开放推理 API 增加了对 Anthropic 的 Claude 的支持,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作者:来自 Elastic Jonathan Buttner

我们很高兴地宣布 Elasticsearch Open Inference API 的最新功能:集成 Anthropic 的 Claude。这项功能使 Elastic 用户能够直接连接到 Anthropic 平台,并使用 Claude 3.5 Sonnet 等大型语言模型来构建 GenAI 应用程序,并实现问答等用例。以前,客户可以从 Amazon Bedrock 等提供商处访问此功能,但现在可以使用他们的 Anthropic 帐户来实现这些目的。

使用 Anthropic 的消息来回答问题

在此博客中,我们将使用 Claude Messages API 在提取(ingestion)过程中回答问题,以便在搜索之前准备好答案。在开始与 Elasticsearch 交互之前,请确保你拥有 Anthropic API 密钥,方法是先创建一个评估帐户并生成一个密钥。我们将使用 Kibana 的控制台在 Elasticsearch 中执行这些后续步骤,而无需设置 IDE。

首先,我们配置一个推理端点,它将与 Anthropic 的消息 API 交互:

PUT _inference/completion/anthropic_completion
{"service": "anthropic","service_settings": {"api_key": "<api key>","model_id": "claude-3-5-sonnet-20240620"},"task_settings": {"max_tokens": 1024}
}

成功创建推理端点后,我们将收到类似以下的响应,状态代码为 200 OK:

{"model_id": "anthropic_completion","task_type": "completion","service": "anthropic","service_settings": {"model_id": "claude-3-5-sonnet-20240620","rate_limit": {"requests_per_minute": 50}},"task_settings": {"max_tokens": 1024}
}

现在,我们可以调用已配置的端点来对任何文本输入执行 completion。让我们向模型询问 GenAI 的简短描述:

POST _inference/completion/anthropic_completion
{"input": "What is a short description of GenAI?"
}

我们应该收到状态代码为 200 OK 的响应,其中包含 GenAI 的简短描述:

{"completion": [{"result": "GenAI, short for Generative Artificial Intelligence, refers to AI systems that can create new content, such as text, images, audio, or video, based on patterns learned from existing data. These systems use advanced machine learning techniques, often involving deep neural networks, to generate human-like outputs in response to prompts or inputs. GenAI has diverse applications across industries, including content creation, design, coding, and problem-solving."}]
}

现在,我们可以设置一个问题目录,其中包含我们希望在采集期间得到解答的问题。我们将使用 Elasticsearch Bulk API 来索引有关 Elastic 产品的这些问题:

POST _bulk
{ "index" : { "_index" : "questions" } }
{"question": "What is Elasticsearch?"}
{ "index" : { "_index" : "questions" } }
{"question": "What is Kibana?"}
{ "index" : { "_index" : "questions" } }
{"question": "What is Logstash?"}

索引成功后应返回类似以下的响应:

{"errors": false,"took": 1552829728,"items": [{"index": {"_index": "questions","_id": "ipR_qJABkw3SJM5Tm3IC","_version": 1,"result": "created","_shards": {"total": 2,"successful": 1,"failed": 0},"_seq_no": 0,"_primary_term": 1,"status": 201}},{"index": {"_index": "questions","_id": "i5R_qJABkw3SJM5Tm3IC","_version": 1,"result": "created","_shards": {"total": 2,"successful": 1,"failed": 0},"_seq_no": 1,"_primary_term": 1,"status": 201}},{"index": {"_index": "questions","_id": "jJR_qJABkw3SJM5Tm3IC","_version": 1,"result": "created","_shards": {"total": 2,"successful": 1,"failed": 0},"_seq_no": 2,"_primary_term": 1,"status": 201}}]
}

我们现在将使用 script、inference 和 remove 处理器来创建我们的问答 ingest pipeline :

PUT _ingest/pipeline/question_answering_pipeline
{"processors": [{"script": {"source": "ctx.prompt = 'Please answer the following question: ' + ctx.question"}},{"inference": {"model_id": "anthropic_completion","input_output": {"input_field": "prompt","output_field": "answer"}}},{"remove": {"field": "prompt"}}]
}

管道在名为 prompt 的临时字段中为 question 字段添加前缀文本:“Please answer the following question:  ”。临时 prompt 字段的内容通过 inference API 发送到 Anthropic 服务。使用摄取管道提供了广泛的灵活性,因为你可以设置预提示以满足你的需求。这种方法也可用于汇总文档。

接下来,我们将通过调用 reindex API 将包含问题的文档通过问答管道发送。

POST _reindex
{"source": {"index": "questions","size": 50},"dest": {"index": "answers","pipeline": "question_answering_pipeline"}
}

我们应该收到类似以下的回应:

{"took": 9571,"timed_out": false,"total": 3,"updated": 0,"created": 3,"deleted": 0,"batches": 1,"version_conflicts": 0,"noops": 0,"retries": {"bulk": 0,"search": 0},"throttled_millis": 0,"requests_per_second": -1,"throttled_until_millis": 0,"failures": []
}

在生产设置中,你可能会使用另一种提取机制以自动方式提取文档。查看我们的 “将数据添加到 Elasticsearch” 指南,了解有关 Elastic 提供的将数据提取到 Elasticsearch 的各种选项的更多信息。我们还致力于展示提取机制并提供使用第三方工具将数据引入 Elasticsearch 的指导。例如,查看使用 Meltano 将数据从 Snowflake 提取到 Elasticsearch:开发人员的旅程,了解如何使用 Meltano 提取数据。

我们现在可以使用 Search API 搜索我们预先生成的答案:

POST answers/_search
{"query": {"match_all": {}}
}

响应将包含预先生成的答案:

{"took": 11,"timed_out": false,"_shards": { ... },"hits": {"total": { ... },"max_score": 1.0,"hits": [{"_index": "answers","_id": "4RO6YY8Bv2OsAP2iNusn","_score": 1.0,"_ignored": ["answer.keyword"],"_source": {"model_id": "azure_openai_completion","question": "What is Elasticsearch?","answer": "Elasticsearch is an open-source, RESTful, distributed search and analytics engine built on Apache Lucene. It can handle a wide variety of data types, including textual, numerical, geospatial, structured, and unstructured data. Elasticsearch is scalable and designed to operate in real-time, making it an ideal choice for use cases such as application search, log and event data analysis, and anomaly detection."}},{ ... },{ ... }]}
}

预先生成常见问题的答案对于降低运营成本特别有效。通过最大限度地减少对即时响应生成的需求,你可以显著减少所需的计算资源量。此外,这种方法可确保每个用户都收到相同的精确信息。一致性至关重要,尤其是在需要高可靠性和准确性的领域,例如医疗、法律或技术支持。

准备好自己尝试一下了吗?开始免费试用。
Elasticsearch 集成了 LangChain、Cohere 等工具。加入我们的高级语义搜索网络研讨会,构建你的下一个 GenAI 应用程序!

原文:Elasticsearch open inference API adds support for Anthropic’s Claude — Search Labs

这篇关于Elasticsearch 开放推理 API 增加了对 Anthropic 的 Claude 的支持的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1122036

相关文章

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

定价129元!支持双频 Wi-Fi 5的华为AX1路由器发布

《定价129元!支持双频Wi-Fi5的华为AX1路由器发布》华为上周推出了其最新的入门级Wi-Fi5路由器——华为路由AX1,建议零售价129元,这款路由器配置如何?详细请看下文介... 华为 Wi-Fi 5 路由 AX1 已正式开售,新品支持双频 1200 兆、配有四个千兆网口、提供可视化智能诊断功能,建

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

一分钟带你上手Python调用DeepSeek的API

《一分钟带你上手Python调用DeepSeek的API》最近DeepSeek非常火,作为一枚对前言技术非常关注的程序员来说,自然都想对接DeepSeek的API来体验一把,下面小编就来为大家介绍一下... 目录前言免费体验API-Key申请首次调用API基本概念最小单元推理模型智能体自定义界面总结前言最

JAVA调用Deepseek的api完成基本对话简单代码示例

《JAVA调用Deepseek的api完成基本对话简单代码示例》:本文主要介绍JAVA调用Deepseek的api完成基本对话的相关资料,文中详细讲解了如何获取DeepSeekAPI密钥、添加H... 获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Jav

C#使用DeepSeek API实现自然语言处理,文本分类和情感分析

《C#使用DeepSeekAPI实现自然语言处理,文本分类和情感分析》在C#中使用DeepSeekAPI可以实现多种功能,例如自然语言处理、文本分类、情感分析等,本文主要为大家介绍了具体实现步骤,... 目录准备工作文本生成文本分类问答系统代码生成翻译功能文本摘要文本校对图像描述生成总结在C#中使用Deep

Java实现Elasticsearch查询当前索引全部数据的完整代码

《Java实现Elasticsearch查询当前索引全部数据的完整代码》:本文主要介绍如何在Java中实现查询Elasticsearch索引中指定条件下的全部数据,通过设置滚动查询参数(scrol... 目录需求背景通常情况Java 实现查询 Elasticsearch 全部数据写在最后需求背景通常情况下

5分钟获取deepseek api并搭建简易问答应用

《5分钟获取deepseekapi并搭建简易问答应用》本文主要介绍了5分钟获取deepseekapi并搭建简易问答应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1、获取api2、获取base_url和chat_model3、配置模型参数方法一:终端中临时将加