-
AWS Kendra SDK(Vanilla javascript) 기본 설정 - CDN, Client, QueryCommandDEV/aws 2024. 1. 12. 14:40
CDN
// NPM으로 받아서 사용하는 것을 더 추천한다. // HTML에서 Module로 불러와주자. * <script type="module" src="./kendra.js"></script> // Vanilla javascript에서 불러오기 import { KendraClient, QueryCommand } from "https://cdn.skypack.dev/@aws-sdk/client-kendra";
Client 호출
/** * region : 본인 AWS Region 코드로 수정해주면 된다. * ap-northeast-1는 도쿄임. */ const region = "본인 AWS의 설정된 Region"; /** * credentials : 본인 AWS Access key, Secret access key * 유출되지 않게 주의하자 (public git 이라던가...) */ const credentials = { accessKeyId: "본인의 Access key", secretAccessKey: "본인의 Secret access key", } try { /** * 본인은 kendra 객체에 넣다 보니 다음고 같이 사용하였음 * const client = new KendraClient({region, credentials,}); 와 같이 사용해도 됨 */ kendra.client = new KendraClient({ region, credentials, }); } catch (err) { console.log(err); }
QueryCommand : Kendra의 Query 검색하는 예시
const input = { IndexId: "본인 켄드라의 IndexId", QueryText: "Kendra에 던질 Query Text(AND OR NOT, *... 등 지원", PageNumber: 1, // 검색할 페이지로 default는 1 PageSize: 10, // 검색 결과 사이즈 default는 10, 최대 100개의 return을 받을 수 있음 AttributeFilter: { AndAllFilters: [ { EqualsTo: { "Key": "_language_code", "Value": { "StringValue": "ko" // 검색에 대한 언어 지정 (한국어) } }, } ] } } console.log("@input : ", input); const queryCommand = new QueryCommand(input); try { // kendra.client << 위에서 생성한 client를 지정해주면 된다. const queryRes = await kendra.client.send(queryCommand); // Query에 대한 결과 return queryRes; } catch (err) { console.log(err); return false; }
Kendra만 하더라도 GPT에 물어보면 대충 다 알려주더라...
자세한 내용은 하단 AWS SDK for Javascript v3 공식 문서[1]를 참고하자.
*내가 데모로 만든 검색 페이지 코드를 Git[4]에 올려두었다.
Ref.
[1]. https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/kendra/
AWS SDK for JavaScript v3
docs.aws.amazon.com
[2]. https://seokbong.tistory.com/230
AWS Kendra 준비...
Kendra를 시작하게 된 계기 당연히 회사에서 시켜서... 자사 SaaS 서비스의 검색 기능이 멍청하여 해당 서비스의 Articles을 모두 수집하여 좀 더 똑똑하게 검색할 수 있는 기능이 필요했다. Amazon Kendra
seokbong.tistory.com
[3]. https://seokbong.tistory.com/232
AWS Zendesk에 Kendra 끼얹기
Why kendra? - Zendesk 지식창고 및 HelpCenter, Community 검색 성능에 부족함을 느낌 - 실제 상담사들이 Zendesk의 지식창고 검색을 사용하면서 불편함을 느끼고 개선을 요청함 - HelpCenter 및 Community의 검색에
seokbong.tistory.com
[4]. https://github.com/Seokhyeon-Park/kendra-demo
GitHub - Seokhyeon-Park/kendra-demo
Contribute to Seokhyeon-Park/kendra-demo development by creating an account on GitHub.
github.com
'DEV > aws' 카테고리의 다른 글
AWS Amazon Connect App @amazon-connect/app 설정 (0) 2024.01.15 AWS Bedrock이란..? (0) 2024.01.12 AWS Zendesk에 Kendra 끼얹기 (1) 2024.01.05 AWS Kendra 준비... (2) 2024.01.04 AWS EC2, Node js 서버 만들기 (API 만들기) (0) 2023.01.10