- Akamai Cloud 계정 및 API 토큰
- OpenAI API 키
- 로컬에 설치된 Terraform
- 로컬에 설치된 kubectl
- 로컬에 설치된 s3cmd
- GitHub 리포지토리 접속 권한
- 배포 키용 SSH 키 쌍
시작하기 전에
인프라를 프로비저닝하고, 문서를 업로드하며, 애플리케이션을 배포하는 데 필요한 인증정보와 명령줄 툴을 마련하세요.
RAG 챗봇 구축 4단계
인프라를 프로비저닝하고, 지식 기반을 업로드하고, 애플리케이션을 배포한 후 완성된 챗봇을 검증하세요.
프로젝트 복제:
git clone https://github.com/akamai-developers/rag-langgraph-k8s-quickstart.git
cd rag-langgraph-k8s-quickstart
Terraform 예제 파일을 복사하고 Akamai Cloud API 토큰과 원하는 리소스 설정을 적용해 구성:
cp terraform/terraform.tfvars.example terraform/terraform.tfvars
LKE 클러스터, PostgreSQL 데이터베이스 2개, 오브젝트 스토리지 버킷 프로비저닝:
cd terraform
terraform init
terraform plan
terraform apply
Terraform 아웃풋을 안전하게 보호하세요. 민감한 연결 정보가 포함되어 있습니다.
Terraform 아웃풋을 환경 변수로 로딩:
export S3_BUCKET=$(terraform output -raw S3_BUCKET_NAME)
export S3_ENDPOINT=$(terraform output -raw S3_ENDPOINT)
export S3_ACCESS_KEY=$(terraform output -raw S3_ACCESS_KEY)
export S3_SECRET_KEY=$(terraform output -raw S3_SECRET_KEY)
포함된 항공사 정책 문서 업로드:
s3cmd sync ../documents/ s3://${S3_BUCKET}/ \
--host=${S3_ENDPOINT} \
--host-bucket=${S3_ENDPOINT} \
--access_key=${S3_ACCESS_KEY} \
--secret_key=${S3_SECRET_KEY}
샘플 정책은 사용자가 직접 작성한 PDF, HTML 또는 텍스트 문서로 대체할 수 있습니다.
생성된 kubeconfig 설정:
export KUBECONFIG=./kubeconfig.yaml
keycloak 네임스페이스에서 초기 App Platform 인증정보를 가져와 로그인합니다.
App Platform에서:
- Harbor 컨테이너 레지스트리를 설치합니다.
- GitHub 배포 키를 생성합니다.
- 저장소에 공개 키를 추가합니다.
- 비공개 키를 Sealed Secret으로 저장합니다.
- 코드 리포지토리를 연결합니다.
- 애플리케이션 이미지를 구축합니다.
- OpenAI, PostgreSQL, 오브젝트 스토리지, 관리자 API 키에 대한 Sealed Secret을 생성합니다.
- 두 PostgreSQL 데이터베이스 모두에 네트워크 정책을 추가합니다.
- charts/workflow.example.yaml을 사용해 워크로드를 생성합니다.
- 애플리케이션을 위한 공개 서비스를 구축합니다.
리포지토리나 워크로드 설정에 인증정보를 하드코딩하지 마세요.
애플리케이션이 실행 중인지 확인:
curl http://<your-service-endpoint>/api/health
데이터베이스 초기화:
curl -X POST \
--header "x-api-key: <your-admin-api-key>" \
http://<your-service-endpoint>/api/admin/initialize_databases
정책 문서 인덱싱:
curl -X POST \
--header "x-api-key: <your-admin-api-key>" \
http://<your-service-endpoint>/api/admin/index_documents
반환된 작업 ID를 사용해 진행 상황 확인:
curl -X GET \
--header "x-api-key: <your-admin-api-key>" \
http://<your-service-endpoint>/api/admin/index_documents/<job-id>
인덱싱이 완료되면 서비스 엔드포인트를 열고 업로드된 정책에 대해 질문하세요.
*프로모션 이용 규칙 및 조건을 참조하세요
자주 묻는 질문(FAQ)
자주 묻는 질문(FAQ)
이 애플리케이션은 오브젝트 스토리지에 저장된 PDF, HTML, 텍스트 파일을 처리할 수 있습니다.
한 시스템은 의미 기반 검색을 위해 벡터 임베딩을 저장합니다. 두 번째 저장소는 대화 기록과 LangGraph 상태를 저장합니다.
아니요. 현재 프로젝트는 임베딩 및 채팅 완성 기능에 OpenAI API를 사용합니다. 나중에 이를 활용해 GPU를 지원하는 LKE 노드에서 오픈 소스 모델을 실행할 수 있습니다.
네. document 디렉토리의 샘플 항공사 정책을 지원되는 기존 파일로 교체한 후 업로드하세요.
이 프로젝트는 OpenAI, 데이터베이스, 오브젝트 스토리지, 배포 키, 관리자 인증정보에 Sealed Secret을 사용합니다.
인덱싱 엔드포인트는 작업 ID를 반환합니다. 상태 엔드포인트를 통해 작업을 모니터링한 후에 챗봇을 테스트하세요.
아니요. Akamai Cloud 크레딧은 자격 요건을 충족하는 Akamai Cloud 인프라에 적용됩니다. OpenAI API 사용료는 별도로 청구됩니다.