-
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/
[2]. https://seokbong.tistory.com/230
[3]. https://seokbong.tistory.com/232
[4]. https://github.com/Seokhyeon-Park/kendra-demo
'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