diff --git a/components/RagWidgetBanner.vue b/components/RagWidgetBanner.vue new file mode 100644 index 000000000..ef1b42279 --- /dev/null +++ b/components/RagWidgetBanner.vue @@ -0,0 +1,120 @@ + + + diff --git a/nuxt.config.ts b/nuxt.config.ts index 359e44e2e..c9fca2b44 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -42,6 +42,7 @@ export default defineNuxtConfig({ runtimeConfig: { crispIdentifier: '', crispKey: '', + albertApiKey: '', crispWebsiteId: '', pagesGhRepoName: 'datagouv/datagouvfr-pages', pagesGhRepoBranch: 'master', diff --git a/pages/beta/searchAI.vue b/pages/beta/searchAI.vue new file mode 100644 index 000000000..e4c53f60c --- /dev/null +++ b/pages/beta/searchAI.vue @@ -0,0 +1,267 @@ + + + diff --git a/pages/datasets/[did].vue b/pages/datasets/[did].vue index 5225bdac9..03aed17ee 100644 --- a/pages/datasets/[did].vue +++ b/pages/datasets/[did].vue @@ -343,6 +343,10 @@ v-if="dataset" :dataset /> +
{ + const body = await readBody(event) + + try { + const config = useRuntimeConfig(event) + const response = await fetch('https://albert.api.etalab.gouv.fr/v1/search', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'Authorization': 'Bearer ' + config.albertApiKey + }, + body: JSON.stringify(body), + }) + + if (!response.ok) { + throw new Error(`Erreur ${response.status}`) + } + + const data = await response.json() + return data + } catch (err) { + return createError({ + statusCode: 500, + statusMessage: JSON.stringify(body), + }) + } +})