fix(MessageContent): handle optional chaining for grounding metadata and citations
This commit is contained in:
parent
b1bd5d0531
commit
d38c4c7368
@ -86,7 +86,7 @@ const MessageContent: React.FC<Props> = ({ message: _message, model }) => {
|
|||||||
const searchResults =
|
const searchResults =
|
||||||
message?.metadata?.webSearch?.results ||
|
message?.metadata?.webSearch?.results ||
|
||||||
message?.metadata?.webSearchInfo ||
|
message?.metadata?.webSearchInfo ||
|
||||||
message?.metadata?.groundingMetadata?.groundingChunks.map((chunk) => chunk.web) ||
|
message?.metadata?.groundingMetadata?.groundingChunks?.map((chunk) => chunk?.web) ||
|
||||||
message?.metadata?.annotations?.map((annotation) => annotation.url_citation) ||
|
message?.metadata?.annotations?.map((annotation) => annotation.url_citation) ||
|
||||||
[]
|
[]
|
||||||
const citationsUrls = formattedCitations || []
|
const citationsUrls = formattedCitations || []
|
||||||
@ -222,18 +222,22 @@ const MessageContent: React.FC<Props> = ({ message: _message, model }) => {
|
|||||||
{message?.metadata?.groundingMetadata && message.status == 'success' && (
|
{message?.metadata?.groundingMetadata && message.status == 'success' && (
|
||||||
<>
|
<>
|
||||||
<CitationsList
|
<CitationsList
|
||||||
citations={message.metadata.groundingMetadata.groundingChunks.map((chunk, index) => ({
|
citations={
|
||||||
number: index + 1,
|
message.metadata.groundingMetadata?.groundingChunks?.map((chunk, index) => ({
|
||||||
url: chunk.web?.uri,
|
number: index + 1,
|
||||||
title: chunk.web?.title,
|
url: chunk?.web?.uri || '',
|
||||||
showFavicon: false
|
title: chunk?.web?.title,
|
||||||
}))}
|
showFavicon: false
|
||||||
|
})) || []
|
||||||
|
}
|
||||||
/>
|
/>
|
||||||
<SearchEntryPoint
|
<SearchEntryPoint
|
||||||
dangerouslySetInnerHTML={{
|
dangerouslySetInnerHTML={{
|
||||||
__html: message.metadata.groundingMetadata.searchEntryPoint?.renderedContent
|
__html: message.metadata.groundingMetadata?.searchEntryPoint?.renderedContent
|
||||||
?.replace(/@media \(prefers-color-scheme: light\)/g, 'body[theme-mode="light"]')
|
? message.metadata.groundingMetadata.searchEntryPoint.renderedContent
|
||||||
.replace(/@media \(prefers-color-scheme: dark\)/g, 'body[theme-mode="dark"]')
|
.replace(/@media \(prefers-color-scheme: light\)/g, 'body[theme-mode="light"]')
|
||||||
|
.replace(/@media \(prefers-color-scheme: dark\)/g, 'body[theme-mode="dark"]')
|
||||||
|
: ''
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</>
|
</>
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
import { GroundingMetadata } from '@google/generative-ai'
|
||||||
import OpenAI from 'openai'
|
import OpenAI from 'openai'
|
||||||
import React from 'react'
|
import React from 'react'
|
||||||
import { BuiltinTheme } from 'shiki'
|
import { BuiltinTheme } from 'shiki'
|
||||||
@ -72,7 +73,7 @@ export type Message = {
|
|||||||
enabledMCPs?: MCPServer[]
|
enabledMCPs?: MCPServer[]
|
||||||
metadata?: {
|
metadata?: {
|
||||||
// Gemini
|
// Gemini
|
||||||
groundingMetadata?: any
|
groundingMetadata?: GroundingMetadata
|
||||||
// Perplexity Or Openrouter
|
// Perplexity Or Openrouter
|
||||||
citations?: string[]
|
citations?: string[]
|
||||||
// OpenAI
|
// OpenAI
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user