Exa는 대규모 언어 모델 응답을 그라운딩하는 데 최적화된 공개적으로 사용 가능한 웹 데이터에 액세스할 수 있는 검색 API를 제공합니다. 이 페이지에서는 Exa를 사용하여 Gemini 응답을 그라운딩하는 방법을 설명합니다.
Gemini Enterprise Agent Platform의 Exa 웹 검색을 통한 그라운딩은 Gemini 모델을 Exa의 검색 API에서 제공하는 공개 웹 데이터에 연결하는 별도의 제품 ( Google Cloud Agreement에 정의됨)입니다.
사용 사례
Exa를 통한 그라운딩은 모델에 최신 관련 웹 데이터에 대한 액세스 권한을 제공하여 정확성을 개선하고 할루시네이션을 줄입니다. 일반적인 사용 사례는 다음과 같습니다.
- 일반 에이전트 및 챗봇: 최신 정보를 검색하여 더 신뢰할 수 있는 답변을 생성합니다.
- 조사 에이전트: 여러 소스에서 딥 웹 조사를 수행합니다.
- 코딩 에이전트: 최신 코드 스니펫, 문서, 기술 참고자료를 가져옵니다.
- 음성 에이전트: 실시간의 지연 시간이 짧은 음성 상호작용을 지원하는 웹 검색입니다.
- 특정 분야 에이전트: 특정 산업 또는 지식 분야에 맞게 맞춤설정된 최신 도메인별 정보를 가져옵니다.
- 데이터 보강: 현재 웹 컨텍스트 및 메타데이터로 내부 데이터 세트를 보강합니다.
- 자동화된 워크플로: 내부 또는 프로덕션 워크플로를 위해 뉴스, 인물, 회사 또는 기타 자주 업데이트되는 데이터를 주기적으로 수집합니다.
예시
2026년 슈퍼볼에서 누가 우승했나요?
| 그라운딩 없음 | 그라운딩 포함 |
|---|---|
| 2026년 슈퍼볼은 아직 개최되지 않았으므로 누가 우승했는지 알려드릴 수 없습니다. | 시애틀 시호크스가 2026년 2월 8일 슈퍼볼 LX에서 뉴잉글랜드 패트리어츠를 29-13으로 꺾고 우승했습니다. 소스: domain1.com, domain2.com, ... |
지원되는 모델
이 섹션에는 Exa 웹 검색을 통한 그라운딩을 지원하는 모델이 나와 있습니다.
클릭하여 지원되는 모델 펼치기
시작하기 전에
Exa를 통한 그라운딩을 사용하려면 Exa 웹사이트에서 API 키를 가져와야 합니다. 이 API 키는 Gemini에 대한 요청에 사용됩니다.
Exa로 Gemini 응답 그라운딩
Google 생성형 AI SDK 또는 REST API를 사용하여 Gemini에서 그라운딩된 응답을 요청합니다. 최적의 성능을 위해 기본값이 아닌 값이 엄격하게 필요한 경우가 아니면 선택적 매개변수에 기본 설정을 사용하는 것이 좋습니다.
샘플을 실행하기 전에 사전 요구사항을 완료합니다. Exa API 키 가져오기를 비롯합니다.
Python
설치
pip install --upgrade google-genai
자세한 내용은 SDK 참고 문서를 참고하세요.
Vertex AI에서 Google 생성형 AI SDK를 사용하도록 환경 변수를 설정합니다.
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
샘플을 실행하기 전에 다음을 바꿉니다.
- MODEL_ID: 사용할 지원되는 모델의 ID(예:
gemini-2.5-flash) - TEXT: 모델에 전송할 텍스트 프롬프트
- API_KEY: Exa 웹 검색의 API 키
- SEARCH_TYPE: (선택사항) 실행할 Exa 검색 유형
지원되는 값은
fast및instant입니다. 기본값은fast이며, 지연 시간이 짧은 포괄적인 결과를 제공하고 사용자 대상 검색 및 대화형 워크플로에 적합합니다. 채팅, 음성 에이전트, 자동 완성 등 지연 시간이 가장 짧은 환경에는instant를 사용합니다. 검색 심도보다 속도를 우선시하여 응답 시간을 최소화합니다. - EXCLUDE_DOMAINS: (선택사항) 검색 결과에서 제외할 도메인 목록
지정된 경우 이러한 도메인에서 결과가 반환되지 않습니다. 둘 이상의 도메인을 제외하려면 각 도메인을 목록에서 별도의 따옴표로 묶은 문자열로 추가합니다 (예:
["example.com", "example.net"]). 최대 1,200개의 도메인을 지정할 수 있습니다. - INCLUDE_DOMAINS: (선택사항) 검색에 포함할 도메인 목록
지정된 경우 결과는 이러한 도메인에서만 제공됩니다. 둘 이상의 도메인을 포함하려면 각 도메인을 목록에서 별도의 따옴표로 묶은 문자열로 추가합니다 (예:
["example.com", "example.net"]). 최대 1,200개의 도메인을 지정할 수 있습니다. - MAX_CHARACTERS: (선택사항) 강조표시를 위해 반환할 최대 문자 수 URL당 반환되는 강조표시 텍스트의 총 길이를 제어합니다.
- NUM_RESULTS: (선택사항) 그라운딩에 사용할 최대 검색
결과 수 지정되지 않은 경우 기본값은
5입니다.
from google import genai
from google.genai import types
client = genai.Client()
response = client.models.generate_content(
model="MODEL_ID",
contents="TEXT",
config=types.GenerateContentConfig(
tools=[
types.Tool(
exa_ai_search=types.ToolExaAiSearch(
# Required. Your API key for Exa web search.
api_key="API_KEY",
# Optional. Customize the search. Click a placeholder to
# enter a value, or remove the line to accept the default.
custom_configs={
"type": "SEARCH_TYPE",
"excludeDomains": ["EXCLUDE_DOMAINS"],
"includeDomains": ["INCLUDE_DOMAINS"],
"contents": {
"highlights": {
"maxCharacters": MAX_CHARACTERS,
},
},
"numResults": NUM_RESULTS,
},
)
)
],
),
)
print(response.text)
# The grounding metadata contains the web sources used to ground the response.
print(response.candidates[0].grounding_metadata.grounding_chunks)
Java
Java를 설치하거나 업데이트하는 방법을 알아보세요.
자세한 내용은 SDK 참고 문서를 참고하세요.
Vertex AI에서 Google 생성형 AI SDK를 사용하도록 환경 변수를 설정합니다.
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
샘플을 실행하기 전에 다음을 바꿉니다.
- MODEL_ID: 사용할 지원되는 모델의 ID(예:
gemini-2.5-flash) - TEXT: 모델에 전송할 텍스트 프롬프트
- API_KEY: Exa 웹 검색의 API 키
- SEARCH_TYPE: (선택사항) 실행할 Exa 검색 유형
지원되는 값은
fast및instant입니다. 기본값은fast이며, 지연 시간이 짧은 포괄적인 결과를 제공하고 사용자 대상 검색 및 대화형 워크플로에 적합합니다. 채팅, 음성 에이전트, 자동 완성 등 지연 시간이 가장 짧은 환경에는instant를 사용합니다. 검색 심도보다 속도를 우선시하여 응답 시간을 최소화합니다. - EXCLUDE_DOMAINS: (선택사항) 검색 결과에서 제외할 도메인 목록
지정된 경우 이러한 도메인에서 결과가 반환되지 않습니다. 둘 이상의 도메인을 제외하려면 각 도메인을 목록에서 별도의 따옴표로 묶은 문자열로 추가합니다 (예:
["example.com", "example.net"]). 최대 1,200개의 도메인을 지정할 수 있습니다. - INCLUDE_DOMAINS: (선택사항) 검색에 포함할 도메인 목록
지정된 경우 결과는 이러한 도메인에서만 제공됩니다. 둘 이상의 도메인을 포함하려면 각 도메인을 목록에서 별도의 따옴표로 묶은 문자열로 추가합니다 (예:
["example.com", "example.net"]). 최대 1,200개의 도메인을 지정할 수 있습니다. - MAX_CHARACTERS: (선택사항) 강조표시를 위해 반환할 최대 문자 수 URL당 반환되는 강조표시 텍스트의 총 길이를 제어합니다.
- NUM_RESULTS: (선택사항) 그라운딩에 사용할 최대 검색
결과 수 지정되지 않은 경우 기본값은
5입니다.
import com.google.genai.Client;
import com.google.genai.types.GenerateContentConfig;
import com.google.genai.types.GenerateContentResponse;
import com.google.genai.types.Tool;
import com.google.genai.types.ToolExaAiSearch;
import java.util.List;
import java.util.Map;
public class ExaGroundingSample {
public static void main(String[] args) {
try (Client client = Client.builder().build()) {
GenerateContentConfig config =
GenerateContentConfig.builder()
.tools(
Tool.builder()
.exaAiSearch(
ToolExaAiSearch.builder()
// Required. Your API key for Exa web search.
.apiKey("API_KEY")
// Optional. Customize the search. Click a
// placeholder to enter a value, or remove the
// entry to accept the default.
.customConfigs(
Map.of(
"type", "SEARCH_TYPE",
"excludeDomains",
List.of("EXCLUDE_DOMAINS"),
"includeDomains",
List.of("INCLUDE_DOMAINS"),
"contents",
Map.of(
"highlights",
Map.of(
"maxCharacters",
MAX_CHARACTERS)),
"numResults", NUM_RESULTS))
.build())
.build())
.build();
GenerateContentResponse response =
client.models.generateContent(
"MODEL_ID", "TEXT", config);
System.out.println(response.text());
// The grounding metadata contains the web sources used to ground the response.
System.out.println(
response.candidates().get().get(0).groundingMetadata().get().groundingChunks().get());
}
}
}
Node.js
설치
npm install @google/genai
자세한 내용은 SDK 참고 문서를 참고하세요.
Vertex AI에서 Google 생성형 AI SDK를 사용하도록 환경 변수를 설정합니다.
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=global export GOOGLE_GENAI_USE_ENTERPRISE=True
샘플을 실행하기 전에 다음을 바꿉니다.
- MODEL_ID: 사용할 지원되는 모델의 ID(예:
gemini-2.5-flash) - TEXT: 모델에 전송할 텍스트 프롬프트
- API_KEY: Exa 웹 검색의 API 키
- SEARCH_TYPE: (선택사항) 실행할 Exa 검색 유형
지원되는 값은
fast및instant입니다. 기본값은fast이며, 지연 시간이 짧은 포괄적인 결과를 제공하고 사용자 대상 검색 및 대화형 워크플로에 적합합니다. 채팅, 음성 에이전트, 자동 완성 등 지연 시간이 가장 짧은 환경에는instant를 사용합니다. 검색 심도보다 속도를 우선시하여 응답 시간을 최소화합니다. - EXCLUDE_DOMAINS: (선택사항) 검색 결과에서 제외할 도메인 목록
지정된 경우 이러한 도메인에서 결과가 반환되지 않습니다. 둘 이상의 도메인을 제외하려면 각 도메인을 목록에서 별도의 따옴표로 묶은 문자열로 추가합니다 (예:
["example.com", "example.net"]). 최대 1,200개의 도메인을 지정할 수 있습니다. - INCLUDE_DOMAINS: (선택사항) 검색에 포함할 도메인 목록
지정된 경우 결과는 이러한 도메인에서만 제공됩니다. 둘 이상의 도메인을 포함하려면 각 도메인을 목록에서 별도의 따옴표로 묶은 문자열로 추가합니다 (예:
["example.com", "example.net"]). 최대 1,200개의 도메인을 지정할 수 있습니다. - MAX_CHARACTERS: (선택사항) 강조표시를 위해 반환할 최대 문자 수 URL당 반환되는 강조표시 텍스트의 총 길이를 제어합니다.
- NUM_RESULTS: (선택사항) 그라운딩에 사용할 최대 검색
결과 수 지정되지 않은 경우 기본값은
5입니다.
import {GoogleGenAI} from '@google/genai';
const ai = new GoogleGenAI({});
const response = await ai.models.generateContent({
model: 'MODEL_ID',
contents: 'TEXT',
config: {
tools: [
{
exaAiSearch: {
// Required. Your API key for Exa web search.
apiKey: 'API_KEY',
// Optional. Customize the search. Click a placeholder to enter a
// value, or remove the line to accept the default.
customConfigs: {
type: 'SEARCH_TYPE',
excludeDomains: ['EXCLUDE_DOMAINS'],
includeDomains: ['INCLUDE_DOMAINS'],
contents: {
highlights: {
maxCharacters: MAX_CHARACTERS,
},
},
numResults: NUM_RESULTS,
},
},
},
],
},
});
console.log(response.text);
// The grounding metadata contains the web sources used to ground the response.
console.log(response.candidates[0].groundingMetadata.groundingChunks);
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- LOCATION: 요청을 처리하는 리전입니다. 전역 엔드포인트를 사용하려면 엔드포인트 이름에서 위치를 제외하고 리소스 위치를 `global`로 구성합니다.
- PROJECT_ID: Google Cloud 프로젝트 ID입니다.
- MODEL_ID: 사용할 모델의 ID입니다.
- TEXT: 모델에 전송할 텍스트 프롬프트
- API_KEY: Exa 웹 검색의 API 키
- SEARCH_TYPE: (선택사항) 실행할 Exa 검색 유형
지원되는 값은
fast및instant입니다. 기본값은fast이며, 지연 시간이 짧은 포괄적인 결과를 제공하고 사용자 대상 검색 및 대화형 워크플로에 적합합니다. 채팅, 음성 에이전트, 자동 완성 등 지연 시간이 가장 짧은 환경에는instant를 사용합니다. 검색 심도보다 속도를 우선시하여 응답 시간을 최소화합니다. - EXCLUDE_DOMAINS: (선택사항) 검색 결과에서 제외할 도메인 목록 지정된 경우 이러한 도메인에서 결과가 반환되지 않습니다. 최대 1,200개의 도메인을 지정할 수 있습니다.
- INCLUDE_DOMAINS: (선택사항) 검색에 포함할 도메인 목록 지정된 경우 결과는 이러한 도메인에서만 제공됩니다. 최대 1,200개의 도메인을 지정할 수 있습니다.
- MAX_CHARACTERS: (선택사항) 강조표시를 위해 반환할 최대 문자 수 URL당 반환되는 강조표시 텍스트의 총 길이를 제어합니다.
- NUM_RESULTS: (선택사항) 그라운딩에 사용할 최대 검색
결과 수 지정되지 않은 경우 기본값은
5입니다.
HTTP 메서드 및 URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent
JSON 요청 본문:
{
"contents": [{
"role": "user",
"parts": [{
"text": "TEXT"
}]
}],
"tools": [{
"exaAiSearch": {
"api_key": "API_KEY",
"customConfigs": {
"type": "SEARCH_TYPE",
"excludeDomains": ["EXCLUDE_DOMAINS"],
"includeDomains": ["INCLUDE_DOMAINS"],
"contents": {
"highlights": {
"maxCharacters": MAX_CHARACTERS
}
},
"numResults": NUM_RESULTS
}
}
}],
"model": "projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID"
}
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 수신됩니다.
Quota
기본 할당량은 분당 200개의 프롬프트입니다. 속도 제한을 늘려야 하는 경우 사용 사례 및 요구사항과 함께 support@exa.ai 및 Google 계정팀에 문의하세요.
결제
Exa를 통한 그라운딩을 사용하면 다음 요금이 부과됩니다.
- Gemini 토큰 소비량: 프롬프트 토큰, 사고 토큰, 출력 토큰 자세한 내용은 가격 책정을 참조하세요.
- Gemini의 데이터로 그라운딩: 자세한 내용은 가격 책정을 참조하세요.
- Exa의 검색 API 사용 가격: 자세한 내용은 Exa의 가격 책정 페이지를 참조하세요.