Spaces:
Sleeping
Sleeping
File size: 1,273 Bytes
0bcc252 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
import { generateText } from 'ai';
import {getModel} from "../config";
import { GoogleGenerativeAIProviderMetadata } from '@ai-sdk/google';
import {TokenTracker} from "../utils/token-tracker";
const model = getModel('searchGrounding')
export async function grounding(query: string, tracker?: TokenTracker): Promise<string> {
try {
const { text, experimental_providerMetadata, usage } = await generateText({
model,
prompt:
`Current date is ${new Date().toISOString()}. Find the latest answer to the following question:
<query>
${query}
</query>
Must include the date and time of the latest answer.`,
});
const metadata = experimental_providerMetadata?.google as
| GoogleGenerativeAIProviderMetadata
| undefined;
const groundingMetadata = metadata?.groundingMetadata;
// Extract and concatenate all groundingSupport text into a single line
const groundedText = groundingMetadata?.groundingSupports
?.map(support => support.segment.text)
.join(' ') || '';
(tracker || new TokenTracker()).trackUsage('grounding', usage);
console.log('Grounding:', {text, groundedText});
return text + '|' + groundedText;
} catch (error) {
console.error('Error in search:', error);
throw error;
}
} |