Vertex AI RAG 엔진은 검색 증강 생성 (RAG)을 지원하는 Vertex AI 플랫폼의 구성요소입니다. RAG 엔진을 사용하면 대규모 언어 모델 (LLM)이 문서 및 데이터베이스와 같은 외부 지식 소스의 데이터에 액세스하고 이를 통합할 수 있습니다. LLM은 RAG를 사용하여 더 정확하고 유익한 LLM 대답을 생성할 수 있습니다.
예시 문법
이 섹션에서는 RAG 자료집을 만드는 구문을 제공합니다.
curl
PROJECT_ID: Your project ID. LOCATION: The region to process the request. curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/ragCorpora\ -d '{ "display_name" : "...", "description": "..." }'
Python
corpus = rag.create_corpus(display_name=..., description=...) print(corpus)
매개변수 목록
이 섹션에는 다음이 나와 있습니다.
매개변수 | 예시 |
---|---|
코퍼스 관리 매개변수를 참고하세요. | 코퍼스 관리 예시를 참고하세요. |
파일 관리 매개변수를 참고하세요. | 파일 관리 예시를 참고하세요. |
코퍼스 관리 매개변수
RAG 자료에 관한 자세한 내용은 자료 관리를 참고하세요.
RAG 코퍼스 만들기
이 표에는 RAG 자료집을 만드는 데 사용되는 매개변수가 나열되어 있습니다.
본문 요청
매개변수 | |
---|---|
|
필수: RAG 자료의 표시 이름입니다. |
|
선택사항: RAG 코퍼스에 대한 설명입니다. |
|
선택사항: 변경 불가: 벡터 DB의 구성입니다. |
|
선택사항: Vertex AI Search의 구성입니다. 형식: |
RagVectorDbConfig
매개변수 | |
---|---|
|
벡터 데이터베이스가 지정되지 않은 경우 |
|
Weaviate 인스턴스를 지정합니다. |
|
Weaviate 인스턴스의 HTTP 엔드포인트입니다. 이 값은 설정된 후에는 변경할 수 없습니다. |
|
RAG 코퍼스가 매핑되는 Weaviate 컬렉션입니다. 이 값은 설정된 후에는 변경할 수 없습니다. |
|
Pinecone 인스턴스를 지정합니다. |
|
RAG 코퍼스와 함께 사용되는 Pinecone 색인을 만드는 데 사용되는 이름입니다. 이 값은 설정된 후에는 변경할 수 없습니다. |
|
Vertex AI Feature Store 인스턴스를 지정합니다. |
|
RAG 코퍼스가 매핑되는 Vertex AI Feature Store 형식: 이 값은 설정된 후에는 변경할 수 없습니다. |
|
Vertex 벡터 검색 인스턴스를 지정합니다. |
|
RAG 코퍼스와 함께 사용되는 벡터 검색 색인의 리소스 이름입니다. 형식: 이 값은 설정된 후에는 변경할 수 없습니다. |
|
RAG 코퍼스와 함께 사용되는 벡터 검색 색인 엔드포인트의 리소스 이름입니다. 형식: 이 값은 설정된 후에는 변경할 수 없습니다. |
|
Secret Manager에 저장된 보안 비밀의 전체 리소스 이름으로, 선택한 벡터 데이터베이스에 따라 Weaviate 또는 Pinecone API 키가 포함되어 있습니다. 형식:
|
|
선택사항: 변경 불가: RAG 코퍼스에 사용할 임베딩 모델입니다. 이 값은 설정된 후에는 변경할 수 없습니다. 이 필드를 비워두면 text-embedding-004가 임베딩 모델로 사용됩니다. |
RAG 코퍼스 업데이트
이 표에는 RAG 자료 모음을 업데이트하는 데 사용되는 매개변수가 나와 있습니다.
본문 요청
매개변수 | |
---|---|
|
선택사항: RAG 자료의 표시 이름입니다. |
|
선택사항: RAG 코퍼스에 대한 설명입니다. |
|
Weaviate 인스턴스의 HTTP 엔드포인트입니다.
|
|
RAG 코퍼스가 매핑되는 Weaviate 컬렉션입니다.
|
|
RAG 코퍼스와 함께 사용되는 Pinecone 색인을 만드는 데 사용되는 이름입니다.
|
|
RAG 코퍼스가 매핑되는 Vertex AI Feature Store 형식:
|
|
RAG 코퍼스와 함께 사용되는 벡터 검색 색인의 리소스 이름입니다. 형식:
|
|
RAG 코퍼스와 함께 사용되는 벡터 검색 색인 엔드포인트의 리소스 이름입니다. 형식:
|
|
Weaviate 또는 Pinecone API 키가 포함된 Secret Manager에 저장된 보안 비밀의 전체 리소스 이름은 선택한 벡터 데이터베이스에 따라 다릅니다. 형식: |
RAG 코퍼스 나열
이 표에는 RAG 자료집을 나열하는 데 사용되는 매개변수가 나와 있습니다.
매개변수 | |
---|---|
|
선택사항: 표준 목록 페이지 크기입니다. |
|
선택사항: 표준 목록 페이지 토큰입니다. 일반적으로 이전 |
RAG 코퍼스 가져오기
이 표에는 RAG 자료 모음을 가져오는 데 사용되는 매개변수가 나와 있습니다.
매개변수 | |
---|---|
|
|
RAG 코퍼스 삭제
이 표에는 RAG 자료 모음을 삭제하는 데 사용되는 매개변수가 나와 있습니다.
매개변수 | |
---|---|
|
|
파일 관리 매개변수
RAG 파일에 관한 자세한 내용은 파일 관리를 참고하세요.
RAG 파일 업로드
이 표에는 RAG 파일을 업로드하는 데 사용되는 매개변수가 나와 있습니다.
본문 요청
매개변수 | |
---|---|
|
|
|
필수: 업로드할 파일입니다. |
|
필수:
|
RagFile |
|
---|---|
|
필수: RAG 파일의 표시 이름입니다. |
|
선택사항: RAG 파일에 대한 설명입니다. |
UploadRagFileConfig |
|
---|---|
|
각 청크의 토큰 수입니다. |
|
청크 간의 중복입니다. |
RAG 파일 가져오기
이 표에는 RAG 파일을 가져오는 데 사용되는 매개변수가 나와 있습니다.
매개변수 | |
---|---|
|
필수:
형식: |
|
Cloud Storage 위치 개별 파일뿐만 아니라 전체 Cloud Storage 디렉터리의 가져오기를 지원합니다. |
|
업로드 파일이 포함된 Cloud Storage URI입니다. |
|
Google Drive 위치 개별 파일과 Google Drive 폴더 가져오기를 지원합니다. |
|
파일이 업로드된 Slack 채널입니다. |
|
파일이 업로드된 Jira 쿼리입니다. |
|
파일이 업로드된 SharePoint 소스입니다. |
|
각 청크의 토큰 수입니다. |
|
청크 간의 중복입니다. |
|
선택사항:
이 필드를 설정하지 않으면 RAG는 기본 파서를 사용합니다. |
|
선택사항: 이 작업이 자료에 지정된 임베딩 모델에 허용되는 분당 최대 쿼리 수입니다. 이 값은 이 작업에만 해당하며 다른 가져오기 작업과 공유되지 않습니다. 프로젝트의 할당량 페이지에서 적절한 값을 설정합니다. 지정하지 않으면 기본값인 1,000QPM이 사용됩니다. |
GoogleDriveSource |
|
---|---|
|
필수: Google Drive 리소스의 ID입니다. |
|
필수: Google Drive 리소스의 유형입니다. |
SlackSource |
|
---|---|
|
반복: Slack 채널 정보(가져올 ID 및 기간 포함) |
|
필수: Slack 채널 ID입니다. |
|
선택사항: 가져올 메시지의 시작 타임스탬프입니다. |
|
선택사항: 가져올 메시지의 종료 타임스탬프입니다. |
|
필수: Secret Manager에 저장된 보안 비밀의 전체 리소스 이름으로, Slack 채널 ID에 액세스할 수 있는 Slack 채널 액세스 토큰이 포함되어 있습니다.
형식: |
JiraSource |
|
---|---|
|
반복: 전체적으로 가져올 Jira 프로젝트 목록입니다. |
|
반복: 가져올 맞춤 Jira 쿼리의 목록입니다. JQL (Jira 쿼리 언어)에 대한 자세한 내용은 |
|
필수: Jira 이메일 주소입니다. |
|
필수: Jira 서버 URI입니다. |
|
필수: Secret Manager에 저장된 보안 비밀의 전체 리소스 이름으로, Slack 채널 ID에 액세스할 수 있는 Jira API 키가 포함되어 있습니다.
형식: |
SharePointSources |
|
---|---|
|
다운로드할 SharePoint 폴더의 경로입니다. |
|
다운로드할 SharePoint 폴더의 ID입니다. |
|
다운로드할 드라이브의 이름입니다. |
|
다운로드할 드라이브의 ID입니다. |
|
Microsoft Azure 포털에 등록된 앱의 애플리케이션 ID입니다.
|
|
필수: Secret Manager에 저장된 보안 비밀의 전체 리소스 이름으로, Azure에 등록된 앱의 애플리케이션 보안 비밀이 포함됩니다. 형식: |
|
Azure Active Directory 인스턴스의 고유 식별자입니다. |
|
다운로드할 SharePoint 사이트의 이름입니다. 사이트 이름 또는 사이트 ID일 수 있습니다. |
RagFileParsingConfig |
|
---|---|
|
|
|
Document AI 프로세서 또는 프로세서 버전의 전체 리소스 이름입니다. 형식:
|
|
작업이 Document AI 프로세서에 분당 허용되는 최대 요청 수입니다. https://cloud.google.com/document-ai/quotas 및 프로젝트의 할당량 페이지를 참고하여 적절한 값을 설정합니다. 지정하지 않으면 기본값인 120QPM이 사용됩니다. |
RAG 파일 받기
이 표에는 RAG 파일을 가져오는 데 사용되는 매개변수가 나와 있습니다.
매개변수 | |
---|---|
|
|
RAG 파일 삭제
이 표에는 RAG 파일을 삭제하는 데 사용되는 매개변수가 나와 있습니다.
매개변수 | |
---|---|
|
|
검색 및 예측
이 섹션에는 검색 및 예측 매개변수가 나와 있습니다.
검색 파라미터
이 표에는 retrieveContexts
API의 매개변수가 나와 있습니다.
매개변수 | |
---|---|
|
필수:
형식: |
|
Vertex RagStore의 데이터 소스입니다. |
|
필수: 단일 RAG 검색 쿼리 |
VertexRagStore
VertexRagStore |
|
---|---|
|
목록: RAG 소스의 표현입니다. 자료만 지정하거나 |
|
선택사항:
형식: |
|
목록:
형식: |
RagQuery |
|
---|---|
|
관련 컨텍스트를 가져올 텍스트 형식의 쿼리입니다. |
|
선택사항: 쿼리의 검색 구성입니다. |
RagRetrievalConfig |
|
---|---|
|
선택사항: 검색할 컨텍스트 수입니다. |
|
선택사항: 알파 값은 밀집 벡터 검색 결과와 희소 벡터 검색 결과 간의 가중치를 제어합니다. 범위는 [0, 1]이며, 여기서 0은 희소 벡터 검색만을 의미하고 1은 밀집 벡터 검색만을 의미합니다. 기본값은 0.5이며 희소 벡터 검색과 밀집 벡터 검색의 균형을 동일하게 맞춥니다. 하이브리드 검색은 Weaviate에서만 사용할 수 있습니다. |
|
벡터 거리가 기준점보다 작은 컨텍스트만 반환합니다. |
|
벡터 유사성이 기준점보다 큰 컨텍스트만 반환합니다. |
|
선택사항: 순위 서비스의 모델 이름입니다. 예: |
|
선택사항: 순위에 사용되는 모델 이름입니다. 예: |
예측 매개변수
이 표에는 예측 매개변수가 나열됩니다.
GenerateContentRequest |
|
---|---|
|
Vertex AI RAG 스토어를 기반으로 하는 데이터 소스를 사용하도록 설정합니다. |
자세한 내용은 VertexRagStore를 참고하세요.
코퍼스 관리 예시
이 섹션에서는 API를 사용하여 RAG 코퍼스를 관리하는 방법의 예를 제공합니다.
RAG 코퍼스 예시 만들기
이 코드 샘플은 RAG 코퍼스를 만드는 방법을 보여줍니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID입니다.
- LOCATION: 요청을 처리하는 리전입니다.
- CORPUS_DISPLAY_NAME:
RagCorpus
의 표시 이름 - CORPUS_DESCRIPTION:
RagCorpus
에 대한 설명
HTTP 메서드 및 URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora
JSON 요청 본문:
{ "display_name" : "CORPUS_DISPLAY_NAME", "description": "CORPUS_DESCRIPTION", }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora"
PowerShell
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora" | Select-Object -Expand Content
다음 예에서는 REST API를 사용하여 RAG 자료 모음을 만드는 방법을 보여줍니다.
PROJECT_ID: Your project ID.
LOCATION: The region to process the request.
CORPUS_DISPLAY_NAME: The display name of the <code>RagCorpus</code>.
// CreateRagCorpus
// Input: LOCATION, PROJECT_ID, CORPUS_DISPLAY_NAME
// Output: CreateRagCorpusOperationMetadata
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora \
-d '{
"display_name" : "CORPUS_DISPLAY_NAME"
}'
Python용 Vertex AI SDK
Python용 Vertex AI SDK를 설치하거나 업데이트하는 방법은 Python용 Vertex AI SDK 설치를 참조하세요. 자세한 내용은 Python용 Vertex AI SDK API 참조 문서를 확인하세요.
RAG 코퍼스 예시 업데이트
새 표시 이름, 설명, 벡터 데이터베이스 구성으로 RAG 자료 모음을 업데이트할 수 있습니다. 하지만 RAG 코퍼스에서는 다음 매개변수를 변경할 수 없습니다.
- 벡터 데이터베이스 유형입니다. 예를 들어 벡터 데이터베이스를 Weaviate에서 Vertex AI Feature Store로 변경할 수는 없습니다.
- 관리형 데이터베이스 옵션을 사용하는 경우 벡터 데이터베이스 구성을 업데이트할 수 없습니다.
다음 예는 RAG 코퍼스를 업데이트하는 방법을 보여줍니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID입니다.
- LOCATION: 요청을 처리하는 리전입니다.
- CORPUS_ID: RAG 자료의 자료 ID입니다.
- CORPUS_DISPLAY_NAME:
RagCorpus
의 표시 이름 - CORPUS_DESCRIPTION:
RagCorpus
에 대한 설명 - INDEX_NAME:
Vector Search Index
의 리소스 이름입니다. 형식:projects/{project}/locations/{location}/indexes/{index}
- INDEX_ENDPOINT_NAME:
Vector Search Index Endpoint
의 리소스 이름입니다. 형식:projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}
HTTP 메서드 및 URL:
PATCH https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/CORPUS_ID
JSON 요청 본문:
{ "display_name" : "CORPUS_DISPLAY_NAME", "description": "CORPUS_DESCRIPTION", "rag_vector_db_config": { "vertex_vector_search": { "index": "INDEX_NAME", "index_endpoint": "INDEX_ENDPOINT_NAME", } } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/CORPUS_ID"
PowerShell
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/CORPUS_ID" | Select-Object -Expand Content
RAG 코퍼스 목록 예
이 코드 샘플은 모든 RAG 코퍼스를 나열하는 방법을 보여줍니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID입니다.
- LOCATION: 요청을 처리하는 리전입니다.
- PAGE_SIZE: 표준 목록 페이지 크기입니다.
page_size
매개변수를 업데이트하여 페이지당 반환할RagCorpora
수를 조정할 수 있습니다. - PAGE_TOKEN: 표준 목록 페이지 토큰입니다. 일반적으로 이전
VertexRagDataService.ListRagCorpora
호출의ListRagCorporaResponse.next_page_token
을 사용하여 가져옵니다.
HTTP 메서드 및 URL:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora?page_size=PAGE_SIZE&page_token=PAGE_TOKEN
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
다음 명령어를 실행합니다.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora?page_size=PAGE_SIZE&page_token=PAGE_TOKEN"
PowerShell
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora?page_size=PAGE_SIZE&page_token=PAGE_TOKEN" | Select-Object -Expand Content
PROJECT_ID
아래의 성공적인 상태 코드 (`2xx`)와 RagCorpora
목록을 받아야 합니다.
Python용 Vertex AI SDK
Python용 Vertex AI SDK를 설치하거나 업데이트하는 방법은 Python용 Vertex AI SDK 설치를 참조하세요. 자세한 내용은 Python용 Vertex AI SDK API 참조 문서를 확인하세요.
RAG 코퍼스 예시 가져오기
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID입니다.
- LOCATION: 요청을 처리하는 리전입니다.
- RAG_CORPUS_ID:
RagCorpus
리소스의 ID입니다.
HTTP 메서드 및 URL:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
다음 명령어를 실행합니다.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
PowerShell
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID" | Select-Object -Expand Content
RagCorpus
리소스가 반환됩니다.
get
및 list
명령어는 RagCorpus
가 선택한 임베딩 모델을 가리키는 vector_db_config
내에서 rag_embedding_model_config
필드를 사용하는 방법을 보여주는 예시에서 사용됩니다.
PROJECT_ID: Your project ID.
LOCATION: The region to process the request.
RAG_CORPUS_ID: The corpus ID of your RAG corpus.
// GetRagCorpus
// Input: LOCATION, PROJECT_ID, RAG_CORPUS_ID
// Output: RagCorpus
curl -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID
// ListRagCorpora
curl -sS -X GET \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/
Python용 Vertex AI SDK
Python용 Vertex AI SDK를 설치하거나 업데이트하는 방법은 Python용 Vertex AI SDK 설치를 참조하세요. 자세한 내용은 Python용 Vertex AI SDK API 참조 문서를 확인하세요.
RAG 코퍼스 삭제 예시
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID입니다.
- LOCATION: 요청을 처리하는 리전입니다.
- RAG_CORPUS_ID:
RagCorpus
리소스의 ID입니다.
HTTP 메서드 및 URL:
DELETE https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
다음 명령어를 실행합니다.
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID"
PowerShell
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID" | Select-Object -Expand Content
DeleteOperationMetadata
가 반환됩니다.
Python용 Vertex AI SDK
Python용 Vertex AI SDK를 설치하거나 업데이트하는 방법은 Python용 Vertex AI SDK 설치를 참조하세요. 자세한 내용은 Python용 Vertex AI SDK API 참조 문서를 확인하세요.
파일 관리 예시
이 섹션에서는 API를 사용하여 RAG 파일을 관리하는 방법의 예를 제공합니다.
RAG 파일 예시 업로드
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다. PROJECT_ID: Your project ID.
LOCATION: The region to process the request.
RAG_CORPUS_ID: The corpus ID of your RAG corpus.
LOCAL_FILE_PATH: The local path to the file to be uploaded.
DISPLAY_NAME: The display name of the RAG file.
DESCRIPTION: The description of the RAG file.
요청을 보내려면 다음 명령어를 사용합니다.
curl -X POST \
-H "X-Goog-Upload-Protocol: multipart" \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-F metadata="{'rag_file': {'display_name':' DISPLAY_NAME', 'description':'DESCRIPTION'}}" \
-F file=@LOCAL_FILE_PATH \
"https://LOCATION-aiplatform.googleapis.com/upload/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:upload"
Python용 Vertex AI SDK
Python용 Vertex AI SDK를 설치하거나 업데이트하는 방법은 Python용 Vertex AI SDK 설치를 참조하세요. 자세한 내용은 Python용 Vertex AI SDK API 참조 문서를 확인하세요.
RAG 파일 가져오기 예
Drive 또는 Cloud Storage에서 파일과 폴더를 가져올 수 있습니다.
response.skipped_rag_files_count
는 가져오기 중에 건너뛴 파일 수를 나타냅니다. 다음 조건이 충족되면 파일이 건너뜁니다.
- 파일이 이미 가져와졌습니다.
- 파일이 변경되지 않았습니다.
- 파일의 청크 구성이 변경되지 않았습니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID입니다.
- LOCATION: 요청을 처리하는 리전입니다.
- RAG_CORPUS_ID:
RagCorpus
리소스의 ID입니다. - GCS_URIS: Cloud Storage 위치 목록입니다. 예:
gs://my-bucket1, gs://my-bucket2
- CHUNK_SIZE: 선택사항: 각 청크에 있어야 하는 토큰 수입니다.
- CHUNK_OVERLAP: 선택사항: 청크 간에 겹치는 토큰 수입니다.
HTTP 메서드 및 URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import
JSON 요청 본문:
{ "import_rag_files_config": { "gcs_source": { "uris": "GCS_URIS" }, "rag_file_chunking_config": { "chunk_size": CHUNK_SIZE, "chunk_overlap": CHUNK_OVERLAP } } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import"
PowerShell
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import" | Select-Object -Expand Content
ImportRagFilesOperationMetadata
리소스가 반환됩니다.
다음 샘플은 Cloud Storage에서 파일을 가져오는 방법을 보여줍니다. max_embedding_requests_per_min
제어 필드를 사용하여 RAG 엔진이 ImportRagFiles
색인 생성 프로세스 중에 임베딩 모델을 호출하는 속도를 제한합니다. 이 필드의 기본값은 분당 1000
호출입니다.
PROJECT_ID: Your project ID.
LOCATION: The region to process the request.
RAG_CORPUS_ID: The corpus ID of your RAG corpus.
GCS_URIS: A list of Cloud Storage locations. Example: gs://my-bucket1.
CHUNK_SIZE: Number of tokens each chunk should have.
CHUNK_OVERLAP: Number of tokens overlap between chunks.
EMBEDDING_MODEL_QPM_RATE: The QPM rate to limit RAGs access to your embedding model. Example: 1000.
// ImportRagFiles
// Import a single Cloud Storage file or all files in a Cloud Storage bucket.
// Input: LOCATION, PROJECT_ID, RAG_CORPUS_ID, GCS_URIS
// Output: ImportRagFilesOperationMetadataNumber
// Use ListRagFiles to find the server-generated rag_file_id.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import \
-d '{
"import_rag_files_config": {
"gcs_source": {
"uris": "GCS_URIS"
},
"rag_file_chunking_config": {
"chunk_size": CHUNK_SIZE,
"chunk_overlap": CHUNK_OVERLAP
},
"max_embedding_requests_per_min": EMBEDDING_MODEL_QPM_RATE
}
}'
// Poll the operation status.
// The response contains the number of files imported.
OPERATION_ID: The operation ID you get from the response of the previous command.
poll_op_wait OPERATION_ID
다음 샘플은 Drive에서 파일을 가져오는 방법을 보여줍니다. max_embedding_requests_per_min
제어 필드를 사용하여 RAG 엔진이 ImportRagFiles
색인 생성 프로세스 중에 임베딩 모델을 호출하는 속도를 제한합니다. 이 필드의 기본값은 분당 1000
호출입니다.
PROJECT_ID: Your project ID.
LOCATION: The region to process the request.
RAG_CORPUS_ID: The corpus ID of your RAG corpus.
FOLDER_RESOURCE_ID: The resource ID of your Google Drive folder.
CHUNK_SIZE: Number of tokens each chunk should have.
CHUNK_OVERLAP: Number of tokens overlap between chunks.
EMBEDDING_MODEL_QPM_RATE: The QPM rate to limit RAGs access to your embedding model. Example: 1000.
// ImportRagFiles
// Import all files in a Google Drive folder.
// Input: LOCATION, PROJECT_ID, RAG_CORPUS_ID, FOLDER_RESOURCE_ID
// Output: ImportRagFilesOperationMetadataNumber
// Use ListRagFiles to find the server-generated rag_file_id.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles:import \
-d '{
"import_rag_files_config": {
"google_drive_source": {
"resource_ids": {
"resource_id": "FOLDER_RESOURCE_ID",
"resource_type": "RESOURCE_TYPE_FOLDER"
}
},
"max_embedding_requests_per_min": EMBEDDING_MODEL_QPM_RATE
}
}'
// Poll the operation status.
// The response contains the number of files imported.
OPERATION_ID: The operation ID you get from the response of the previous command.
poll_op_wait OPERATION_ID
Python용 Vertex AI SDK
Python용 Vertex AI SDK를 설치하거나 업데이트하는 방법은 Python용 Vertex AI SDK 설치를 참조하세요. 자세한 내용은 Python용 Vertex AI SDK API 참조 문서를 확인하세요.
RAG 파일 나열 예
이 코드 샘플은 RAG 파일을 나열하는 방법을 보여줍니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID입니다.
- LOCATION: 요청을 처리하는 리전입니다.
- RAG_CORPUS_ID:
RagCorpus
리소스의 ID입니다. - PAGE_SIZE: 표준 목록 페이지 크기입니다.
page_size
매개변수를 업데이트하여 페이지당 반환할RagFiles
수를 조정할 수 있습니다. - PAGE_TOKEN: 표준 목록 페이지 토큰입니다. 일반적으로 이전
VertexRagDataService.ListRagFiles
호출의ListRagFilesResponse.next_page_token
을 사용하여 가져옵니다.
HTTP 메서드 및 URL:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles?page_size=PAGE_SIZE&page_token=PAGE_TOKEN
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
다음 명령어를 실행합니다.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles?page_size=PAGE_SIZE&page_token=PAGE_TOKEN"
PowerShell
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles?page_size=PAGE_SIZE&page_token=PAGE_TOKEN" | Select-Object -Expand Content
RAG_CORPUS_ID
아래의 RagFiles
목록과 함께 성공적인 상태 코드(2xx)를 받아야 합니다.
Python용 Vertex AI SDK
Python용 Vertex AI SDK를 설치하거나 업데이트하는 방법은 Python용 Vertex AI SDK 설치를 참조하세요. 자세한 내용은 Python용 Vertex AI SDK API 참조 문서를 확인하세요.
RAG 파일 예시 가져오기
이 코드 샘플은 RAG 파일을 가져오는 방법을 보여줍니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID입니다.
- LOCATION: 요청을 처리하는 리전입니다.
- RAG_CORPUS_ID:
RagCorpus
리소스의 ID입니다. - RAG_FILE_ID:
RagFile
리소스의 ID입니다.
HTTP 메서드 및 URL:
GET https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
다음 명령어를 실행합니다.
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"
PowerShell
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID" | Select-Object -Expand Content
RagFile
리소스가 반환됩니다.
Python용 Vertex AI SDK
Python용 Vertex AI SDK를 설치하거나 업데이트하는 방법은 Python용 Vertex AI SDK 설치를 참조하세요. 자세한 내용은 Python용 Vertex AI SDK API 참조 문서를 확인하세요.
RAG 파일 삭제 예
이 코드 샘플은 RAG 파일을 삭제하는 방법을 보여줍니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID입니다.
- LOCATION: 요청을 처리하는 리전입니다.
- RAG_CORPUS_ID:
RagCorpus
리소스의 ID입니다. - RAG_FILE_ID:
RagFile
리소스의 ID입니다. 형식은projects/{project}/locations/{location}/ragCorpora/{rag_corpus}/ragFiles/{rag_file_id}
입니다.
HTTP 메서드 및 URL:
DELETE https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
다음 명령어를 실행합니다.
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID"
PowerShell
다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/ragCorpora/RAG_CORPUS_ID/ragFiles/RAG_FILE_ID" | Select-Object -Expand Content
DeleteOperationMetadata
리소스가 반환됩니다.
Python용 Vertex AI SDK
Python용 Vertex AI SDK를 설치하거나 업데이트하는 방법은 Python용 Vertex AI SDK 설치를 참조하세요. 자세한 내용은 Python용 Vertex AI SDK API 참조 문서를 확인하세요.
검색 쿼리
사용자가 질문하거나 프롬프트를 제공하면 RAG의 검색 구성요소는 기술 자료를 통해 쿼리와 관련된 정보를 찾습니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- LOCATION: 요청을 처리하는 리전입니다.
- PROJECT_ID: 프로젝트 ID
- RAG_CORPUS_RESOURCE:
RagCorpus
리소스의 이름입니다. 형식은projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
입니다. - VECTOR_DISTANCE_THRESHOLD: 벡터 거리가 기준점보다 작은 컨텍스트만 반환됩니다.
- TEXT: 관련 컨텍스트를 가져올 쿼리 텍스트입니다.
- SIMILARITY_TOP_K: 검색할 상위 컨텍스트 수입니다.
HTTP 메서드 및 URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts
JSON 요청 본문:
{ "vertex_rag_store": { "rag_resources": { "rag_corpus": "RAG_CORPUS_RESOURCE" }, "vector_distance_threshold": VECTOR_DISTANCE_THRESHOLD }, "query": { "text": "TEXT", "similarity_top_k": SIMILARITY_TOP_K } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts"
PowerShell
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION:retrieveContexts" | Select-Object -Expand Content
RagFiles
목록을 받아야 합니다.
Python용 Vertex AI SDK
Python용 Vertex AI SDK를 설치하거나 업데이트하는 방법은 Python용 Vertex AI SDK 설치를 참조하세요. 자세한 내용은 Python용 Vertex AI SDK API 참조 문서를 확인하세요.
생성
LLM은 검색된 컨텍스트를 사용하여 근거 있는 응답을 생성합니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID입니다.
- LOCATION: 요청을 처리하는 리전입니다.
- MODEL_ID: 콘텐츠 생성을 위한 LLM 모델입니다. 예를 들면
gemini-1.5-pro-002
입니다. - GENERATION_METHOD: 콘텐츠 생성을 위한 LLM 방법입니다. 선택사항:
generateContent
,streamGenerateContent
- INPUT_PROMPT: 콘텐츠 생성을 위해 LLM에 전송된 텍스트입니다. 업로드된 래그 파일과 관련된 프롬프트를 사용해 보세요.
- RAG_CORPUS_RESOURCE:
RagCorpus
리소스의 이름입니다. 형식은projects/{project}/locations/{location}/ragCorpora/{rag_corpus}
입니다. - SIMILARITY_TOP_K: 선택사항: 검색할 인기 컨텍스트 수입니다.
- VECTOR_DISTANCE_THRESHOLD: 선택사항: 벡터 거리가 기준점보다 작은 컨텍스트가 반환됩니다.
HTTP 메서드 및 URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD
JSON 요청 본문:
{ "contents": { "role": "user", "parts": { "text": "INPUT_PROMPT" } }, "tools": { "retrieval": { "disable_attribution": false, "vertex_rag_store": { "rag_resources": { "rag_corpus": "RAG_CORPUS_RESOURCE" }, "similarity_top_k": SIMILARITY_TOP_K, "vector_distance_threshold": VECTOR_DISTANCE_THRESHOLD } } } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD"
PowerShell
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:GENERATION_METHOD" | Select-Object -Expand Content
Python용 Vertex AI SDK
Python용 Vertex AI SDK를 설치하거나 업데이트하는 방법은 Python용 Vertex AI SDK 설치를 참조하세요. 자세한 내용은 Python용 Vertex AI SDK API 참조 문서를 확인하세요.
다음 단계
- 지원되는 생성 모델에 대해 자세히 알아보려면 RAG를 지원하는 생성형 AI 모델을 참고하세요.
- 지원되는 임베딩 모델에 관한 자세한 내용은 임베딩 모델을 참고하세요.
- 개방형 모델에 대한 자세한 내용은 개방형 모델을 참고하세요.
- RAG 엔진에 대한 자세한 내용은 RAG 엔진 개요를 참고하세요.