diff --git a/content/copilot/using-github-copilot/ai-models/using-openai-gpt-41-in-github-copilot.md b/content/copilot/using-github-copilot/ai-models/using-openai-gpt-41-in-github-copilot.md index f2ff7680cb5e..ebfb1bc1c824 100644 --- a/content/copilot/using-github-copilot/ai-models/using-openai-gpt-41-in-github-copilot.md +++ b/content/copilot/using-github-copilot/ai-models/using-openai-gpt-41-in-github-copilot.md @@ -18,7 +18,7 @@ OpenAI has a family of large language models that you can use as an alternative * {% data variables.product.prodname_copilot_chat_short %} in {% data variables.product.prodname_vscode %} * Immersive mode in {% data variables.product.prodname_copilot_chat_short %} in {% data variables.product.github %} -{% data variables.copilot.copilot_gpt_41 %} is hosted by OpenAI and GitHub's Azure tenant when used in {% data variables.product.prodname_copilot %}. OpenAI makes the [following data commitment](https://openai.com/enterprise-privacy/): _We [OpenAI] do not train our models on your business data by default_. GitHub maintains a [zero data retention agreement](https://platform.openai.com/docs/guides/your-data) with OpenAI. +{% data variables.copilot.copilot_gpt_41 %} is hosted by GitHub's Azure tenant when used in {% data variables.product.prodname_copilot %}. When using {% data variables.copilot.copilot_gpt_41 %}, input prompts and output completions continue to run through {% data variables.product.prodname_copilot %}'s content filters for public code matching, when applied, along with those for harmful, offensive, or off-topic content. diff --git a/data/ui.yml b/data/ui.yml index e9136135cf90..fd016a36d568 100644 --- a/data/ui.yml +++ b/data/ui.yml @@ -42,6 +42,7 @@ search: clear_search_query: Clear view_all_search_results: View more results no_results_found: No results found + no_results_found_announcement: 'Search Docs: No results found' search_docs_with_query: Search docs for "{{query}}" privacy_disclaimer: For product and service improvement purposes, the GitHub Docs team will retain questions and answers generated in the Docs search function. Please see the GitHub Privacy Statement to review how GitHub collects and uses your data. ai: diff --git a/src/fixtures/fixtures/data/ui.yml b/src/fixtures/fixtures/data/ui.yml index e9136135cf90..fd016a36d568 100644 --- a/src/fixtures/fixtures/data/ui.yml +++ b/src/fixtures/fixtures/data/ui.yml @@ -42,6 +42,7 @@ search: clear_search_query: Clear view_all_search_results: View more results no_results_found: No results found + no_results_found_announcement: 'Search Docs: No results found' search_docs_with_query: Search docs for "{{query}}" privacy_disclaimer: For product and service improvement purposes, the GitHub Docs team will retain questions and answers generated in the Docs search function. Please see the GitHub Privacy Statement to review how GitHub collects and uses your data. ai: diff --git a/src/search/components/input/SearchOverlay.tsx b/src/search/components/input/SearchOverlay.tsx index 502eede759b9..3bdcbe53eafd 100644 --- a/src/search/components/input/SearchOverlay.tsx +++ b/src/search/components/input/SearchOverlay.tsx @@ -91,6 +91,7 @@ export function SearchOverlay({ const [aiCouldNotAnswer, setAICouldNotAnswer] = useState(false) const [showSpinner, setShowSpinner] = useState(false) const [scrollPos, setScrollPos] = useState(0) + const [announcement, setAnnouncement] = useState('') const { hasOpenHeaderNotifications } = useSharedUIContext() @@ -188,6 +189,7 @@ export function SearchOverlay({ // Combine options for key navigation const [combinedOptions, generalOptionsWithViewStatus, aiOptionsWithUserInput] = useMemo(() => { + setAnnouncement('') let generalOptionsWithViewStatus = [...generalSearchResults] const aiOptionsWithUserInput = [...userInputOptions, ...filteredAIOptions] const combinedOptions = [] as Array<{ @@ -209,6 +211,7 @@ export function SearchOverlay({ } as unknown as GeneralSearchHit) } } else if (urlSearchInputQuery.trim() !== '' && !searchLoading) { + setAnnouncement(t('search.overlay.no_results_found_announcement')) generalOptionsWithViewStatus.push({ title: t('search.overlay.no_results_found'), isNoResultsFound: true, @@ -815,6 +818,22 @@ export function SearchOverlay({ dangerouslySetInnerHTML={{ __html: t('search.overlay.privacy_disclaimer') }} /> +
+ {announcement} +
)