Skip to main content

AWSKendraRetriever

概述

Amazon Kendra 是由亚马逊网络服务 (AWS) 提供的一种智能搜索服务。 它利用先进的自然语言处理 (NLP) 和机器学习算法,使组织内的各种数据源具备强大的搜索功能。 Kendra 的设计旨在帮助用户快速而准确地找到所需信息,从而提高生产力和决策能力。

使用 Kendra,用户可以跨多种内容类型进行搜索,包括文档、常见问题、知识库、手册和网站。 它支持多种语言,能够理解复杂的查询、同义词和上下文含义,从而提供高度相关的搜索结果。

这将帮助你快速入门 Amazon Kendra retriever。如需了解 AWSKendraRetriever 所有功能和配置的详细文档,请前往 API 参考

集成详情

检索器来源
AWSKendraRetriever各类 AWS 资源@langchain/aws

准备工作

开始之前,你需要一个 AWS 账户和一个 Amazon Kendra 实例。更多信息请参见 AWS 的教程

如果你希望从单个查询中获得自动化追踪,也可以取消下面代码的注释来设置你的 LangSmith API 密钥:

// process.env.LANGSMITH_API_KEY = "<YOUR API KEY HERE>";
// process.env.LANGSMITH_TRACING = "true";

安装

该检索器位于 @langchain/aws 包中:

:::提示 请参阅安装集成包的一般说明部分。 :::

yarn add @langchain/aws @langchain/core

实例化

现在我们可以实例化检索器:

import { AmazonKendraRetriever } from "@langchain/aws";

const retriever = new AmazonKendraRetriever({
topK: 10,
indexId: "YOUR_INDEX_ID",
region: "us-east-2", // Your region
clientOptions: {
credentials: {
accessKeyId: "YOUR_ACCESS_KEY_ID",
secretAccessKey: "YOUR_SECRET_ACCESS_KEY",
},
},
});

用法

const query = "...";

await retriever.invoke(query);

在链式应用中的使用

与其他检索器类似,AWSKendraRetriever 可以通过 链式应用 集成到 LLM 应用中。

我们将需要一个 LLM 或聊天模型:

Pick your chat model:

Install dependencies

yarn add @langchain/groq 

Add environment variables

GROQ_API_KEY=your-api-key

Instantiate the model

import { ChatGroq } from "@langchain/groq";

const llm = new ChatGroq({
model: "llama-3.3-70b-versatile",
temperature: 0
});
import { ChatPromptTemplate } from "@langchain/core/prompts";
import {
RunnablePassthrough,
RunnableSequence,
} from "@langchain/core/runnables";
import { StringOutputParser } from "@langchain/core/output_parsers";

import type { Document } from "@langchain/core/documents";

const prompt = ChatPromptTemplate.fromTemplate(`
Answer the question based only on the context provided.

Context: {context}

Question: {question}`);

const formatDocs = (docs: Document[]) => {
return docs.map((doc) => doc.pageContent).join("\n\n");
};

// See https://js.langchain.com/docs/tutorials/rag
const ragChain = RunnableSequence.from([
{
context: retriever.pipe(formatDocs),
question: new RunnablePassthrough(),
},
prompt,
llm,
new StringOutputParser(),
]);
await ragChain.invoke(query);

API 参考文档

如需详细了解所有 AmazonKendraRetriever 的功能和配置,请访问 API 参考文档


Was this page helpful?


You can also leave detailed feedback on GitHub.