@houtini/gemini-mcp 1.0.1 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +122 -3
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +2 -1
- package/dist/config/index.js.map +1 -1
- package/dist/config/types.d.ts +1 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/services/gemini/index.d.ts +1 -0
- package/dist/services/gemini/index.d.ts.map +1 -1
- package/dist/services/gemini/index.js +93 -9
- package/dist/services/gemini/index.js.map +1 -1
- package/dist/services/gemini/types.d.ts +3 -0
- package/dist/services/gemini/types.d.ts.map +1 -1
- package/dist/tools/gemini-chat.d.ts.map +1 -1
- package/dist/tools/gemini-chat.js +7 -1
- package/dist/tools/gemini-chat.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -36,6 +36,7 @@ npx @houtini/gemini-mcp
|
|
|
36
36
|
### Core Functionality
|
|
37
37
|
- **🤖 Multi-Model Support** - Access to 6 Gemini models including the latest Gemini 2.5 Flash
|
|
38
38
|
- **💬 Chat Interface** - Advanced chat functionality with customisable parameters
|
|
39
|
+
- **🌐 Google Search Grounding** - Real-time web search integration enabled by default for current information
|
|
39
40
|
- **📊 Model Information** - Detailed model capabilities and specifications
|
|
40
41
|
- **🎛️ Fine-Grained Control** - Temperature, token limits, and system prompts
|
|
41
42
|
|
|
@@ -238,6 +239,103 @@ Use Gemini 1.5 Pro to analyse this code and suggest improvements.
|
|
|
238
239
|
Show me all available Gemini models and their capabilities.
|
|
239
240
|
```
|
|
240
241
|
|
|
242
|
+
## 🌐 Google Search Grounding
|
|
243
|
+
|
|
244
|
+
This server includes **Google Search grounding** functionality powered by Google's real-time web search, providing Gemini models with access to current web information. This feature is **enabled by default** and significantly enhances response accuracy for questions requiring up-to-date information.
|
|
245
|
+
|
|
246
|
+
### ✨ Key Benefits
|
|
247
|
+
|
|
248
|
+
- **🔄 Real-time Information** - Access to current news, events, stock prices, weather, and developments
|
|
249
|
+
- **🎯 Factual Accuracy** - Reduces AI hallucinations by grounding responses in verified web sources
|
|
250
|
+
- **📚 Source Citations** - Automatic citation of sources with search queries used
|
|
251
|
+
- **⚡ Seamless Integration** - Works transparently without changing your existing workflow
|
|
252
|
+
- **🧠 Smart Search** - AI automatically determines when to search based on query content
|
|
253
|
+
|
|
254
|
+
### How Google Search Grounding Works
|
|
255
|
+
|
|
256
|
+
When you ask a question that benefits from current information, the system:
|
|
257
|
+
|
|
258
|
+
1. **Analyses your query** to determine if web search would improve the answer
|
|
259
|
+
2. **Generates relevant search queries** automatically based on your question
|
|
260
|
+
3. **Performs Google searches** using multiple targeted queries
|
|
261
|
+
4. **Processes search results** and synthesises information from multiple sources
|
|
262
|
+
5. **Provides enhanced response** with inline citations and source links
|
|
263
|
+
6. **Shows search metadata** including the actual queries used for transparency
|
|
264
|
+
|
|
265
|
+
### 🎯 Perfect For These Use Cases
|
|
266
|
+
|
|
267
|
+
**Current Events & News**
|
|
268
|
+
```
|
|
269
|
+
What are the latest developments in AI announced this month?
|
|
270
|
+
What's happening with the 2025 climate negotiations?
|
|
271
|
+
Recent breakthroughs in quantum computing research?
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
**Real-time Data**
|
|
275
|
+
```
|
|
276
|
+
Current stock prices for major tech companies
|
|
277
|
+
Today's weather forecast for London
|
|
278
|
+
Latest cryptocurrency market trends
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
**Recent Developments**
|
|
282
|
+
```
|
|
283
|
+
New software releases and updates this week
|
|
284
|
+
Recent scientific discoveries in medicine
|
|
285
|
+
Latest policy changes in renewable energy
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
**Fact Checking & Verification**
|
|
289
|
+
```
|
|
290
|
+
Verify recent statements about climate change
|
|
291
|
+
Check the latest statistics on global internet usage
|
|
292
|
+
Confirm recent merger and acquisition announcements
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
### 🎛️ Controlling Grounding Behaviour
|
|
296
|
+
|
|
297
|
+
**Default Behaviour**: Grounding is **enabled by default** for optimal results and accuracy.
|
|
298
|
+
|
|
299
|
+
**Disable for Creative Tasks**: When you want purely creative or hypothetical responses:
|
|
300
|
+
```
|
|
301
|
+
Use Gemini without web search to write a fictional story about dragons in space.
|
|
302
|
+
Write a creative poem about imaginary colours that don't exist.
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
**Technical Control**: When using the API directly, use the `grounding` parameter:
|
|
306
|
+
|
|
307
|
+
```json
|
|
308
|
+
{
|
|
309
|
+
"message": "Write a creative story about time travel",
|
|
310
|
+
"model": "gemini-2.5-flash",
|
|
311
|
+
"grounding": false
|
|
312
|
+
}
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
```json
|
|
316
|
+
{
|
|
317
|
+
"message": "What are the latest developments in renewable energy?",
|
|
318
|
+
"model": "gemini-2.5-flash",
|
|
319
|
+
"grounding": true
|
|
320
|
+
}
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
### 📊 Understanding Grounded Responses
|
|
324
|
+
|
|
325
|
+
When grounding is active, responses include:
|
|
326
|
+
|
|
327
|
+
**Source Citations**: Links to the websites used for information
|
|
328
|
+
```
|
|
329
|
+
Sources: (https://example.com/article1) (https://example.com/article2)
|
|
330
|
+
```
|
|
331
|
+
|
|
332
|
+
**Search Transparency**: The actual search queries used
|
|
333
|
+
```
|
|
334
|
+
Search queries used: latest AI developments 2025, OpenAI GPT-5 release, Google Gemini updates
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
**Enhanced Accuracy**: Information synthesis from multiple authoritative sources rather than relying solely on training data
|
|
338
|
+
|
|
241
339
|
## 🔧 API Reference
|
|
242
340
|
|
|
243
341
|
### Available Tools
|
|
@@ -255,15 +353,17 @@ Chat with Gemini models to generate text responses.
|
|
|
255
353
|
| `temperature` | number | ❌ | 0.7 | Controls randomness (0.0-1.0) |
|
|
256
354
|
| `max_tokens` | integer | ❌ | 2048 | Maximum tokens in response (1-8192) |
|
|
257
355
|
| `system_prompt` | string | ❌ | - | System instruction to guide the model |
|
|
356
|
+
| `grounding` | boolean | ❌ | true | Enable Google Search grounding for real-time information |
|
|
258
357
|
|
|
259
358
|
**Example:**
|
|
260
359
|
```json
|
|
261
360
|
{
|
|
262
|
-
"message": "
|
|
263
|
-
"model": "gemini-1.5-pro",
|
|
361
|
+
"message": "What are the latest developments in quantum computing?",
|
|
362
|
+
"model": "gemini-1.5-pro",
|
|
264
363
|
"temperature": 0.5,
|
|
265
364
|
"max_tokens": 1000,
|
|
266
|
-
"system_prompt": "You are a helpful
|
|
365
|
+
"system_prompt": "You are a helpful technology expert. Provide current, factual information with sources where possible.",
|
|
366
|
+
"grounding": true
|
|
267
367
|
}
|
|
268
368
|
```
|
|
269
369
|
|
|
@@ -476,6 +576,25 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|
|
476
576
|
|
|
477
577
|
## 📈 Changelog
|
|
478
578
|
|
|
579
|
+
### v1.0.3 (Latest)
|
|
580
|
+
|
|
581
|
+
**Enhanced Google Search Grounding**
|
|
582
|
+
- 🔧 Fixed grounding metadata field name issues for improved reliability
|
|
583
|
+
- 🎯 Enhanced source citation processing and display
|
|
584
|
+
- ✅ Verified compatibility with latest Google Generative AI SDK (v0.21.0)
|
|
585
|
+
- 📝 Comprehensive grounding documentation and usage examples
|
|
586
|
+
- 🐛 Resolved field naming inconsistencies in grounding response handling
|
|
587
|
+
- ⚡ Improved grounding metadata debugging and error handling
|
|
588
|
+
|
|
589
|
+
### v1.0.2
|
|
590
|
+
|
|
591
|
+
**Google Search Grounding Introduction**
|
|
592
|
+
- ✨ Added Google Search grounding functionality enabled by default
|
|
593
|
+
- 🌐 Real-time web search integration for current information and facts
|
|
594
|
+
- 📊 Grounding metadata in responses with source citations
|
|
595
|
+
- 🎛️ Configurable grounding parameter in chat requests
|
|
596
|
+
- 🎯 Enhanced accuracy for current events, news, and factual queries
|
|
597
|
+
|
|
479
598
|
### v1.0.0
|
|
480
599
|
|
|
481
600
|
**Initial Release**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAMjC,eAAO,MAAM,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAMjC,eAAO,MAAM,MAAM,EAAE,MAkCpB,CAAC;AAEF,wBAAgB,cAAc,IAAI,IAAI,CAOrC"}
|
package/dist/config/index.js
CHANGED
package/dist/config/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0CA,wCAOC;AAhDD,+CAAiC;AAEjC,6BAA6B;AAC7B,MAAM,CAAC,MAAM,EAAE,CAAC;AAEH,QAAA,MAAM,GAAW;IAC5B,MAAM,EAAE;QACN,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;QAClC,cAAc,EAAE;YACd;gBACE,QAAQ,EAAE,0BAA0B;gBACpC,SAAS,EAAE,YAAY;aACxB;YACD;gBACE,QAAQ,EAAE,2BAA2B;gBACrC,SAAS,EAAE,YAAY;aACxB;YACD;gBACE,QAAQ,EAAE,iCAAiC;gBAC3C,SAAS,EAAE,YAAY;aACxB;YACD;gBACE,QAAQ,EAAE,iCAAiC;gBAC3C,SAAS,EAAE,YAAY;aACxB;SACF;QACD,YAAY,EAAE,kBAAkB;QAChC,SAAS,EAAE,IAAI;QACf,WAAW,EAAE,GAAG;QAChB,gBAAgB,EAAE,IAAI;KACvB;IACD,MAAM,EAAE;QACN,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,OAAO;KACjB;IACD,OAAO,EAAE;QACP,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,MAAM;QACtC,MAAM,EAAE,UAAU;KACnB;CACF,CAAC;AAEF,SAAgB,cAAc;IAC5B,IAAI,CAAC,cAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CACb,+CAA+C;YAC/C,yEAAyE,CAC1E,CAAC;IACJ,CAAC;AACH,CAAC"}
|
package/dist/config/types.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH"}
|
|
@@ -6,6 +6,7 @@ export declare class GeminiService extends BaseService {
|
|
|
6
6
|
private config;
|
|
7
7
|
private readonly availableModels;
|
|
8
8
|
constructor(config: GeminiConfig);
|
|
9
|
+
private addInlineCitations;
|
|
9
10
|
chat(request: ChatRequest): Promise<ChatResponse>;
|
|
10
11
|
listModels(): Promise<ListModelsResponse>;
|
|
11
12
|
validateConfig(): Promise<boolean>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/gemini/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,WAAW,EACX,YAAY,EACZ,kBAAkB,EAGnB,MAAM,SAAS,CAAC;AAGjB,qBAAa,aAAc,SAAQ,WAAW;IAC5C,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,MAAM,CAAe;IAG7B,OAAO,CAAC,QAAQ,CAAC,eAAe,CA+B9B;gBAEU,MAAM,EAAE,YAAY;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/gemini/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,WAAW,EACX,YAAY,EACZ,kBAAkB,EAGnB,MAAM,SAAS,CAAC;AAGjB,qBAAa,aAAc,SAAQ,WAAW;IAC5C,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,MAAM,CAAe;IAG7B,OAAO,CAAC,QAAQ,CAAC,eAAe,CA+B9B;gBAEU,MAAM,EAAE,YAAY;IAYhC,OAAO,CAAC,kBAAkB;IAkEpB,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IA+HjD,UAAU,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAazC,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAwBxC,OAAO,CAAC,iBAAiB;IAqBzB,kBAAkB,IAAI,MAAM,EAAE;CAG/B"}
|
|
@@ -49,24 +49,88 @@ class GeminiService extends base_service_1.BaseService {
|
|
|
49
49
|
this.genAI = new generative_ai_1.GoogleGenerativeAI(config.apiKey);
|
|
50
50
|
this.logInfo('Gemini service initialized');
|
|
51
51
|
}
|
|
52
|
+
addInlineCitations(text, groundingMetadata) {
|
|
53
|
+
// Use correct field names (typos were fixed in recent SDK versions)
|
|
54
|
+
const supports = groundingMetadata.groundingSupports || [];
|
|
55
|
+
const chunks = groundingMetadata.groundingChunks || [];
|
|
56
|
+
// Add comprehensive debug logging
|
|
57
|
+
this.logInfo('Grounding metadata debug', {
|
|
58
|
+
allKeys: Object.keys(groundingMetadata),
|
|
59
|
+
hasSupports: !!supports,
|
|
60
|
+
supportsLength: supports.length,
|
|
61
|
+
hasChunks: !!chunks,
|
|
62
|
+
chunksLength: chunks.length,
|
|
63
|
+
webSearchQueries: groundingMetadata.webSearchQueries?.length || 0,
|
|
64
|
+
supportsSample: supports.length > 0 ? supports[0] : null,
|
|
65
|
+
chunksSample: chunks.length > 0 ? chunks[0] : null,
|
|
66
|
+
fullMetadata: groundingMetadata
|
|
67
|
+
});
|
|
68
|
+
// Try to extract sources even if supports/chunks are empty or missing
|
|
69
|
+
// Maybe webSearchQueries alone can provide some value
|
|
70
|
+
if (groundingMetadata.webSearchQueries && groundingMetadata.webSearchQueries.length > 0) {
|
|
71
|
+
const searchInfo = `\n\nSearch queries used: ${groundingMetadata.webSearchQueries.join(', ')}`;
|
|
72
|
+
if (!supports.length && !chunks.length) {
|
|
73
|
+
return text + searchInfo;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
if (!supports.length || !chunks.length) {
|
|
77
|
+
this.logInfo('No supports or chunks found - skipping citations');
|
|
78
|
+
return text;
|
|
79
|
+
}
|
|
80
|
+
let processedText = text;
|
|
81
|
+
const citationLinks = [];
|
|
82
|
+
const usedChunkIndices = new Set();
|
|
83
|
+
for (const support of supports) {
|
|
84
|
+
// Use correct field name (typo was fixed in recent SDK versions)
|
|
85
|
+
const indices = support.groundingChunkIndices || [];
|
|
86
|
+
if (indices.length) {
|
|
87
|
+
for (const chunkIndex of indices) {
|
|
88
|
+
if (chunkIndex < chunks.length && !usedChunkIndices.has(chunkIndex)) {
|
|
89
|
+
const chunk = chunks[chunkIndex];
|
|
90
|
+
const uri = chunk.web?.uri;
|
|
91
|
+
if (uri) {
|
|
92
|
+
citationLinks.push(uri);
|
|
93
|
+
usedChunkIndices.add(chunkIndex);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
if (citationLinks.length > 0) {
|
|
100
|
+
processedText += '\n\nSources: ' + citationLinks.map(url => `(${url})`).join(' ');
|
|
101
|
+
}
|
|
102
|
+
// Add search queries if available
|
|
103
|
+
if (groundingMetadata.webSearchQueries && groundingMetadata.webSearchQueries.length > 0) {
|
|
104
|
+
processedText += `\n\nSearch queries used: ${groundingMetadata.webSearchQueries.join(', ')}`;
|
|
105
|
+
}
|
|
106
|
+
return processedText;
|
|
107
|
+
}
|
|
52
108
|
async chat(request) {
|
|
53
109
|
try {
|
|
54
|
-
|
|
110
|
+
// Determine if grounding should be used
|
|
111
|
+
const shouldUseGrounding = request.grounding ?? this.config.defaultGrounding;
|
|
112
|
+
const modelName = request.model || this.config.defaultModel;
|
|
113
|
+
this.logInfo(`Chat request to ${modelName}`, {
|
|
55
114
|
messageLength: request.message.length,
|
|
56
|
-
hasSystemPrompt: !!request.systemPrompt
|
|
115
|
+
hasSystemPrompt: !!request.systemPrompt,
|
|
116
|
+
grounding: shouldUseGrounding
|
|
57
117
|
});
|
|
58
|
-
const modelName = request.model || this.config.defaultModel;
|
|
59
118
|
// Configure generation parameters
|
|
60
119
|
const generationConfig = {
|
|
61
120
|
temperature: request.temperature ?? this.config.temperature,
|
|
62
121
|
maxOutputTokens: request.maxTokens ?? this.config.maxTokens
|
|
63
122
|
};
|
|
64
|
-
// Initialize model with safety settings
|
|
65
|
-
const
|
|
123
|
+
// Initialize model with safety settings and optional grounding
|
|
124
|
+
const modelConfig = {
|
|
66
125
|
model: modelName,
|
|
67
126
|
safetySettings: this.mapSafetySettings(),
|
|
68
127
|
generationConfig
|
|
69
|
-
}
|
|
128
|
+
};
|
|
129
|
+
// Add grounding tool if enabled
|
|
130
|
+
if (shouldUseGrounding) {
|
|
131
|
+
modelConfig.tools = [{ googleSearch: {} }];
|
|
132
|
+
}
|
|
133
|
+
const model = this.genAI.getGenerativeModel(modelConfig);
|
|
70
134
|
// Prepare prompt
|
|
71
135
|
const prompt = request.systemPrompt
|
|
72
136
|
? `${request.systemPrompt}\n\nUser: ${request.message}\n\nAssistant:`
|
|
@@ -103,16 +167,36 @@ class GeminiService extends base_service_1.BaseService {
|
|
|
103
167
|
}
|
|
104
168
|
throw new error_handler_1.GeminiError('No text content in response. The model may have filtered the content.');
|
|
105
169
|
}
|
|
170
|
+
// Extract grounding metadata if available
|
|
171
|
+
const candidate = response.candidates?.[0];
|
|
172
|
+
const groundingMetadata = candidate?.groundingMetadata;
|
|
173
|
+
// Debug log the grounding metadata structure
|
|
174
|
+
if (groundingMetadata) {
|
|
175
|
+
this.logInfo('Raw grounding metadata structure', {
|
|
176
|
+
keys: Object.keys(groundingMetadata),
|
|
177
|
+
webSearchQueries: groundingMetadata.webSearchQueries,
|
|
178
|
+
hasSearchQueries: !!groundingMetadata.webSearchQueries,
|
|
179
|
+
searchQueriesLength: groundingMetadata.webSearchQueries?.length || 0
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
// Process inline citations if grounding metadata exists
|
|
183
|
+
let processedContent = responseText;
|
|
184
|
+
if (groundingMetadata) {
|
|
185
|
+
processedContent = this.addInlineCitations(responseText, groundingMetadata);
|
|
186
|
+
}
|
|
106
187
|
const chatResponse = {
|
|
107
|
-
content:
|
|
188
|
+
content: processedContent,
|
|
108
189
|
model: modelName,
|
|
109
190
|
timestamp: new Date().toISOString(),
|
|
110
|
-
finishReason: response.candidates?.[0]?.finishReason?.toString()
|
|
191
|
+
finishReason: response.candidates?.[0]?.finishReason?.toString(),
|
|
192
|
+
groundingMetadata
|
|
111
193
|
};
|
|
112
194
|
this.logInfo('Chat response generated successfully', {
|
|
113
195
|
model: modelName,
|
|
114
196
|
responseLength: responseText.length,
|
|
115
|
-
finishReason: chatResponse.finishReason
|
|
197
|
+
finishReason: chatResponse.finishReason,
|
|
198
|
+
hasGroundingMetadata: !!groundingMetadata,
|
|
199
|
+
searchQueries: groundingMetadata?.webSearchQueries?.length || 0
|
|
116
200
|
});
|
|
117
201
|
return chatResponse;
|
|
118
202
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/gemini/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/gemini/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,18 @@
|
|
|
1
|
+
import { GroundingMetadata } from '@google/generative-ai';
|
|
1
2
|
export interface ChatRequest {
|
|
2
3
|
message: string;
|
|
3
4
|
model?: string;
|
|
4
5
|
temperature?: number;
|
|
5
6
|
maxTokens?: number;
|
|
6
7
|
systemPrompt?: string;
|
|
8
|
+
grounding?: boolean;
|
|
7
9
|
}
|
|
8
10
|
export interface ChatResponse {
|
|
9
11
|
content: string;
|
|
10
12
|
model: string;
|
|
11
13
|
timestamp: string;
|
|
12
14
|
finishReason?: string;
|
|
15
|
+
groundingMetadata?: GroundingMetadata;
|
|
13
16
|
}
|
|
14
17
|
export interface ModelInfo {
|
|
15
18
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/gemini/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/gemini/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-chat.d.ts","sourceRoot":"","sources":["../../src/tools/gemini-chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,WAAW,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC9F,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD,qBAAa,cAAc;IACb,OAAO,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAEhD,aAAa,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"gemini-chat.d.ts","sourceRoot":"","sources":["../../src/tools/gemini-chat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,WAAW,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC9F,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD,qBAAa,cAAc;IACb,OAAO,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAEhD,aAAa,IAAI,IAAI;IA8Cf,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;CAgCjD"}
|
|
@@ -45,6 +45,11 @@ class GeminiChatTool {
|
|
|
45
45
|
system_prompt: {
|
|
46
46
|
type: 'string',
|
|
47
47
|
description: 'Optional system instruction'
|
|
48
|
+
},
|
|
49
|
+
grounding: {
|
|
50
|
+
type: 'boolean',
|
|
51
|
+
default: true,
|
|
52
|
+
description: 'Enable Google Search grounding for real-time information'
|
|
48
53
|
}
|
|
49
54
|
},
|
|
50
55
|
required: ['message']
|
|
@@ -65,7 +70,8 @@ class GeminiChatTool {
|
|
|
65
70
|
model: args.model,
|
|
66
71
|
temperature: args.temperature,
|
|
67
72
|
maxTokens: args.max_tokens,
|
|
68
|
-
systemPrompt: args.system_prompt
|
|
73
|
+
systemPrompt: args.system_prompt,
|
|
74
|
+
grounding: args.grounding
|
|
69
75
|
});
|
|
70
76
|
return (0, error_handler_1.createToolResult)(true, response.content);
|
|
71
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-chat.js","sourceRoot":"","sources":["../../src/tools/gemini-chat.ts"],"names":[],"mappings":";;;;;;AAEA,0DAAoE;AACpE,6DAAqC;AAErC,MAAa,cAAc;IACL;IAApB,YAAoB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAEpD,aAAa;QACX,OAAO;YACL,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,gCAAgC;YAC7C,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,qBAAqB;qBACnC;oBACD,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,kBAAkB;wBAC3B,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE;wBAC7C,WAAW,EAAE,cAAc;qBAC5B;oBACD,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,GAAG;wBACZ,OAAO,EAAE,GAAG;wBACZ,OAAO,EAAE,GAAG;wBACZ,WAAW,EAAE,kCAAkC;qBAChD;oBACD,UAAU,EAAE;wBACV,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,IAAI;wBACb,OAAO,EAAE,CAAC;wBACV,OAAO,EAAE,IAAI;wBACb,WAAW,EAAE,4BAA4B;qBAC1C;oBACD,aAAa,EAAE;wBACb,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,6BAA6B;qBAC3C;iBACF;gBACD,QAAQ,EAAE,CAAC,SAAS,CAAC;aACtB;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAS;QACrB,IAAI,CAAC;YACH,gBAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE;gBACxC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM;aACpC,CAAC,CAAC;YAEH,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,IAAI,wBAAQ,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,CAAC;YAC9D,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;gBAC7C,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,SAAS,EAAE,IAAI,CAAC,UAAU;gBAC1B,YAAY,EAAE,IAAI,CAAC,aAAa;
|
|
1
|
+
{"version":3,"file":"gemini-chat.js","sourceRoot":"","sources":["../../src/tools/gemini-chat.ts"],"names":[],"mappings":";;;;;;AAEA,0DAAoE;AACpE,6DAAqC;AAErC,MAAa,cAAc;IACL;IAApB,YAAoB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAEpD,aAAa;QACX,OAAO;YACL,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,gCAAgC;YAC7C,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,qBAAqB;qBACnC;oBACD,KAAK,EAAE;wBACL,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,kBAAkB;wBAC3B,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,kBAAkB,EAAE;wBAC7C,WAAW,EAAE,cAAc;qBAC5B;oBACD,WAAW,EAAE;wBACX,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,GAAG;wBACZ,OAAO,EAAE,GAAG;wBACZ,OAAO,EAAE,GAAG;wBACZ,WAAW,EAAE,kCAAkC;qBAChD;oBACD,UAAU,EAAE;wBACV,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,IAAI;wBACb,OAAO,EAAE,CAAC;wBACV,OAAO,EAAE,IAAI;wBACb,WAAW,EAAE,4BAA4B;qBAC1C;oBACD,aAAa,EAAE;wBACb,IAAI,EAAE,QAAQ;wBACd,WAAW,EAAE,6BAA6B;qBAC3C;oBACD,SAAS,EAAE;wBACT,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,IAAI;wBACb,WAAW,EAAE,0DAA0D;qBACxE;iBACF;gBACD,QAAQ,EAAE,CAAC,SAAS,CAAC;aACtB;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAS;QACrB,IAAI,CAAC;YACH,gBAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE;gBACxC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM;aACpC,CAAC,CAAC;YAEH,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,IAAI,wBAAQ,CAAC,qBAAqB,EAAE,gBAAgB,CAAC,CAAC;YAC9D,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;gBAC7C,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,SAAS,EAAE,IAAI,CAAC,UAAU;gBAC1B,YAAY,EAAE,IAAI,CAAC,aAAa;gBAChC,SAAS,EAAE,IAAI,CAAC,SAAS;aAC1B,CAAC,CAAC;YAEH,OAAO,IAAA,gCAAgB,EAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;QAElD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,gBAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAE7D,IAAI,KAAK,YAAY,wBAAQ,EAAE,CAAC;gBAC9B,OAAO,IAAA,gCAAgB,EAAC,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACvD,CAAC;YAED,OAAO,IAAA,gCAAgB,EAAC,KAAK,EAAE,qBAAsB,KAAe,CAAC,OAAO,EAAE,EAAE,KAAc,CAAC,CAAC;QAClG,CAAC;IACH,CAAC;CACF;AAjFD,wCAiFC"}
|
package/package.json
CHANGED