Exa menyediakan API penelusuran yang memberikan akses ke data web yang tersedia secara publik dan dioptimalkan untuk grounding respons model bahasa besar. Halaman ini menjelaskan cara melakukan grounding pada respons Gemini menggunakan Exa.
Grounding dengan penelusuran web Exa di Gemini Enterprise Agent Platform adalah Penawaran Terpisah (sebagaimana didefinisikan dalam Perjanjian Google Cloud Anda) yang menghubungkan model Gemini ke data web publik yang disediakan oleh API penelusuran Exa.
Kasus penggunaan
Grounding dengan Exa meningkatkan akurasi dan mengurangi halusinasi dengan memberi model akses ke data web yang relevan dan terbaru. Kasus penggunaan umum mencakup:
- Agen dan chatbot umum: Mengambil informasi terbaru untuk menghasilkan jawaban yang lebih andal.
- Agen riset: Melakukan riset deep web dari berbagai sumber.
- Agen coding: Mengambil cuplikan kode, dokumen, dan referensi teknis terbaru.
- Agen suara: Pengambilan web untuk mendukung interaksi suara real-time dengan latensi rendah.
- Agen khusus vertikal: Mengambil informasi terbaru dan khusus domain yang disesuaikan dengan industri atau vertikal pengetahuan tertentu.
- Pengayaan data: Tingkatkan kualitas set data internal dengan konteks dan metadata web saat ini.
- Alur kerja otomatis: Secara berkala mengumpulkan berita, orang, perusahaan, atau data lain yang sering diperbarui untuk alur kerja internal atau produksi.
Contoh
Siapa yang memenangkan Superbowl 2026?
| Tanpa Grounding | Dengan Grounding |
|---|---|
| Saya tidak dapat memberi tahu Anda siapa yang memenangkan Super Bowl 2026 karena acara tersebut belum berlangsung. | Seattle Seahawks memenangkan Super Bowl LX pada 8 Februari 2026, mengalahkan New England Patriots dengan skor akhir 29-13. Sumber: domain1.com, domain2.com, ... |
Model yang didukung
Bagian ini mencantumkan model yang mendukung grounding dengan penelusuran web Exa.
Klik untuk meluaskan model yang didukung
Sebelum memulai
Untuk menggunakan Perujukan dengan Exa, Anda harus mendapatkan kunci API dari situs Exa. Kunci API ini digunakan dalam permintaan Anda ke Gemini.
Memperkuat respons Gemini dengan Exa
Minta respons yang di-grounding dari Gemini menggunakan Google Gen AI SDK atau REST API. Untuk performa terbaik, sebaiknya gunakan setelan default untuk parameter opsional, kecuali jika Anda benar-benar memerlukan nilai non-default.
Sebelum menjalankan contoh, selesaikan prasyarat, termasuk mendapatkan kunci API Exa.
Python
Instal
pip install --upgrade google-genai
Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.
Tetapkan variabel lingkungan untuk menggunakan Google Gen AI SDK dengan Vertex AI:
# 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
Sebelum menjalankan contoh, lakukan penggantian berikut:
- MODEL_ID: ID model yang didukung untuk digunakan, seperti
gemini-2.5-flash. - TEXT: Perintah teks yang akan dikirim ke model.
- API_KEY: Kunci API Anda untuk penelusuran web Exa.
- SEARCH_TYPE: Opsional: Jenis penelusuran Exa
yang akan dijalankan. Nilai yang didukung adalah
fastdaninstant. Nilai defaultnya adalahfast, yang memberikan hasil komprehensif dengan latensi yang lebih rendah dan sangat cocok untuk penelusuran yang ditampilkan kepada pengguna dan alur kerja interaktif. Gunakaninstantuntuk pengalaman yang memerlukan latensi terendah, seperti chat, agen suara, dan pelengkapan otomatis; hal ini meminimalkan waktu respons dengan memprioritaskan kecepatan daripada kedalaman penelusuran. - EXCLUDE_DOMAINS: Opsional: Daftar domain yang akan dikecualikan dari hasil penelusuran. Jika ditentukan, tidak ada hasil yang ditampilkan dari domain ini. Untuk
mengecualikan lebih dari satu domain, tambahkan setiap domain sebagai string yang dikutip terpisah dalam daftar (misalnya,
["example.com", "example.net"]). Anda dapat menentukan hingga 1.200 domain. - INCLUDE_DOMAINS: Opsional: Daftar domain yang akan disertakan dalam penelusuran. Jika ditentukan, hasil hanya berasal dari domain ini. Untuk menyertakan lebih
dari satu domain, tambahkan setiap domain sebagai string yang dikutip terpisah dalam daftar (misalnya,
["example.com", "example.net"]). Anda dapat menentukan hingga 1.200 domain. - MAX_CHARACTERS: Opsional: Jumlah maksimum karakter yang akan ditampilkan untuk sorotan. Mengontrol total panjang teks sorotan yang ditampilkan per URL.
- NUM_RESULTS: Opsional: Jumlah maksimum hasil penelusuran yang akan digunakan untuk grounding. Jika tidak ditentukan, setelan defaultnya adalah
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
Pelajari cara menginstal atau mengupdate Java.
Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.
Tetapkan variabel lingkungan untuk menggunakan Google Gen AI SDK dengan Vertex AI:
# 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
Sebelum menjalankan contoh, lakukan penggantian berikut:
- MODEL_ID: ID model yang didukung untuk digunakan, seperti
gemini-2.5-flash. - TEXT: Perintah teks yang akan dikirim ke model.
- API_KEY: Kunci API Anda untuk penelusuran web Exa.
- SEARCH_TYPE: Opsional: Jenis penelusuran Exa
yang akan dijalankan. Nilai yang didukung adalah
fastdaninstant. Nilai defaultnya adalahfast, yang memberikan hasil komprehensif dengan latensi yang lebih rendah dan sangat cocok untuk penelusuran yang ditampilkan kepada pengguna dan alur kerja interaktif. Gunakaninstantuntuk pengalaman yang memerlukan latensi terendah, seperti chat, agen suara, dan pelengkapan otomatis; hal ini meminimalkan waktu respons dengan memprioritaskan kecepatan daripada kedalaman penelusuran. - EXCLUDE_DOMAINS: Opsional: Daftar domain yang akan dikecualikan dari hasil penelusuran. Jika ditentukan, tidak ada hasil yang ditampilkan dari domain ini. Untuk
mengecualikan lebih dari satu domain, tambahkan setiap domain sebagai string yang dikutip terpisah dalam daftar (misalnya,
["example.com", "example.net"]). Anda dapat menentukan hingga 1.200 domain. - INCLUDE_DOMAINS: Opsional: Daftar domain yang akan disertakan dalam penelusuran. Jika ditentukan, hasil hanya berasal dari domain ini. Untuk menyertakan lebih
dari satu domain, tambahkan setiap domain sebagai string yang dikutip terpisah dalam daftar (misalnya,
["example.com", "example.net"]). Anda dapat menentukan hingga 1.200 domain. - MAX_CHARACTERS: Opsional: Jumlah maksimum karakter yang akan ditampilkan untuk sorotan. Mengontrol total panjang teks sorotan yang ditampilkan per URL.
- NUM_RESULTS: Opsional: Jumlah maksimum hasil
penelusuran yang akan digunakan untuk perujukan. Jika tidak ditentukan, setelan defaultnya adalah
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
Instal
npm install @google/genai
Untuk mempelajari lebih lanjut, lihat dokumentasi referensi SDK.
Tetapkan variabel lingkungan untuk menggunakan Google Gen AI SDK dengan Vertex AI:
# 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
Sebelum menjalankan contoh, lakukan penggantian berikut:
- MODEL_ID: ID model yang didukung untuk digunakan, seperti
gemini-2.5-flash. - TEXT: Perintah teks yang akan dikirim ke model.
- API_KEY: Kunci API Anda untuk penelusuran web Exa.
- SEARCH_TYPE: Opsional: Jenis penelusuran Exa
yang akan dijalankan. Nilai yang didukung adalah
fastdaninstant. Nilai defaultnya adalahfast, yang memberikan hasil komprehensif dengan latensi yang lebih rendah dan sangat cocok untuk penelusuran yang ditampilkan kepada pengguna dan alur kerja interaktif. Gunakaninstantuntuk pengalaman yang memerlukan latensi terendah, seperti chat, agen suara, dan pelengkapan otomatis; hal ini meminimalkan waktu respons dengan memprioritaskan kecepatan daripada kedalaman penelusuran. - EXCLUDE_DOMAINS: Opsional: Daftar domain yang akan dikecualikan dari hasil penelusuran. Jika ditentukan, tidak ada hasil yang ditampilkan dari domain ini. Untuk
mengecualikan lebih dari satu domain, tambahkan setiap domain sebagai string yang dikutip terpisah dalam daftar (misalnya,
["example.com", "example.net"]). Anda dapat menentukan hingga 1.200 domain. - INCLUDE_DOMAINS: Opsional: Daftar domain yang akan disertakan dalam penelusuran. Jika ditentukan, hasil hanya berasal dari domain ini. Untuk menyertakan lebih
dari satu domain, tambahkan setiap domain sebagai string yang dikutip terpisah dalam daftar (misalnya,
["example.com", "example.net"]). Anda dapat menentukan hingga 1.200 domain. - MAX_CHARACTERS: Opsional: Jumlah maksimum karakter yang akan ditampilkan untuk sorotan. Mengontrol total panjang teks sorotan yang ditampilkan per URL.
- NUM_RESULTS: Opsional: Jumlah maksimum hasil
penelusuran yang akan digunakan untuk perujukan. Jika tidak ditentukan, setelan defaultnya adalah
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
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- LOCATION: Region untuk memproses permintaan. Untuk menggunakan endpoint global, kecualikan lokasi dari nama endpoint dan konfigurasikan lokasi resource ke `global`.
- PROJECT_ID: Project ID Google Cloud Anda.
- MODEL_ID: ID model yang akan digunakan.
- TEXT: Perintah teks yang akan dikirim ke model.
- API_KEY: Kunci API Anda untuk penelusuran web Exa.
- SEARCH_TYPE: Opsional: Jenis penelusuran Exa
yang akan dijalankan. Nilai yang didukung adalah
fastdaninstant. Nilai defaultnya adalahfast, yang memberikan hasil komprehensif dengan latensi yang lebih rendah dan sangat cocok untuk penelusuran yang ditampilkan kepada pengguna dan alur kerja interaktif. Gunakaninstantuntuk pengalaman yang memerlukan latensi terendah, seperti chat, agen suara, dan pelengkapan otomatis; mode ini meminimalkan waktu respons dengan memprioritaskan kecepatan daripada kedalaman penelusuran. - EXCLUDE_DOMAINS: Opsional: Daftar domain yang akan dikecualikan dari hasil penelusuran. Jika ditentukan, tidak ada hasil yang akan ditampilkan dari domain ini. Anda dapat menentukan hingga 1.200 domain.
- INCLUDE_DOMAINS: Opsional: Daftar domain yang akan disertakan dalam penelusuran. Jika ditentukan, hasil hanya akan berasal dari domain ini. Anda dapat menentukan hingga 1.200 domain.
- MAX_CHARACTERS: Opsional: Jumlah karakter maksimum yang akan ditampilkan untuk sorotan. Mengontrol total panjang teks sorotan yang ditampilkan per URL.
- NUM_RESULTS: Opsional: Jumlah maksimum hasil
penelusuran yang akan digunakan untuk perujukan. Jika tidak ditentukan, setelan defaultnya adalah
5.
Metode HTTP dan URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/publishers/google/models/MODEL_ID:generateContent
Meminta isi 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"
}
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON yang mirip seperti berikut:
Kuota
Kuota defaultnya adalah 200 perintah per menit. Jika Anda perlu meningkatkan batas kapasitas, hubungi support@exa.ai dan tim akun Google Anda dengan menyertakan kasus penggunaan dan persyaratan Anda.
Penagihan
Penggunaan Grounding dengan Exa akan dikenai biaya berikut:
- Konsumsi token Gemini: Token perintah, token penalaran, token output. Untuk mengetahui informasi selengkapnya, lihat Harga.
- Grounding Gemini dengan data Anda: Untuk mengetahui informasi selengkapnya, lihat Harga.
- Harga untuk penggunaan API penelusuran Exa: Untuk mengetahui informasi selengkapnya, lihat halaman harga Exa.