diff --git a/.gitignore b/.gitignore index b00b0e325a4..b28f7186a41 100644 --- a/.gitignore +++ b/.gitignore @@ -41,6 +41,7 @@ dev # docker-compose env files .env +.env.local *.key *.key.pub \ No newline at end of file diff --git a/app/api/webdav/[...path]/route.ts b/app/api/webdav/[...path]/route.ts index 01286fc1bf9..1f58a884fe3 100644 --- a/app/api/webdav/[...path]/route.ts +++ b/app/api/webdav/[...path]/route.ts @@ -37,9 +37,13 @@ async function handle( const normalizedAllowedEndpoint = normalizeUrl(allowedEndpoint); const normalizedEndpoint = normalizeUrl(endpoint as string); - return normalizedEndpoint && + return ( + normalizedEndpoint && normalizedEndpoint.hostname === normalizedAllowedEndpoint?.hostname && - normalizedEndpoint.pathname.startsWith(normalizedAllowedEndpoint.pathname); + normalizedEndpoint.pathname.startsWith( + normalizedAllowedEndpoint.pathname, + ) + ); }) ) { return NextResponse.json( diff --git a/app/components/sidebar.tsx b/app/components/sidebar.tsx index 69b2e71f871..a8bf14b1266 100644 --- a/app/components/sidebar.tsx +++ b/app/components/sidebar.tsx @@ -155,10 +155,10 @@ export function SideBar(props: { className?: string }) { >
- NextChat + بسم الله الرحمان الرحيم
- Build your own AI assistant. + S'entraîner avec l'IA
@@ -179,13 +179,13 @@ export function SideBar(props: { className?: string }) { }} shadow /> - } text={shouldNarrow ? undefined : Locale.Plugin.Name} className={styles["sidebar-bar-button"]} onClick={() => showToast(Locale.WIP)} shadow - /> + /> */}
= { const openaiModels = [ "gpt-3.5-turbo", - "gpt-3.5-turbo-1106", - "gpt-3.5-turbo-0125", + // "gpt-3.5-turbo-1106", + // "gpt-3.5-turbo-0125", "gpt-4", - "gpt-4-0613", - "gpt-4-32k", - "gpt-4-32k-0613", + // "gpt-4-0613", + // "gpt-4-32k", + // "gpt-4-32k-0613", "gpt-4-turbo", - "gpt-4-turbo-preview", + // "gpt-4-turbo-preview", "gpt-4o", "gpt-4o-2024-05-13", "gpt-4-vision-preview", @@ -156,11 +156,11 @@ const googleModels = [ "gemini-1.0-pro", "gemini-1.5-pro-latest", "gemini-1.5-flash-latest", - "gemini-pro-vision", + // "gemini-pro-vision", ]; const anthropicModels = [ - "claude-instant-1.2", + // "claude-instant-1.2", "claude-2.0", "claude-2.1", "claude-3-sonnet-20240229", diff --git a/app/locales/fr.ts b/app/locales/fr.ts index 944754d62a7..25a2738d0a4 100644 --- a/app/locales/fr.ts +++ b/app/locales/fr.ts @@ -128,7 +128,7 @@ const fr: PartialLocaleType = { FoundUpdate: (x: string) => `Nouvelle version disponible : ${x}`, GoToUpdate: "Mise à jour", }, - SendKey: "Clé d'envoi", + SendKey: "Touche pour envoyer le message", Theme: "Thème", TightBorder: "Bordure serrée", SendPreviewBubble: { @@ -240,7 +240,7 @@ const fr: PartialLocaleType = { Sysmessage: "Eres un asistente que", }, Mask: { - Name: "Masque", + Name: "Assistants", Page: { Title: "Modèle de prompt", SubTitle: (count: number) => `${count} modèles de prompts`, @@ -284,7 +284,7 @@ const fr: PartialLocaleType = { Return: "Retour", Skip: "Passer", Title: "Choisir un assitant", - SubTitle: "Discutez avec l'âme derrière le masque", + SubTitle: "Préconfigurez l'IA avec un prompt spécifique à un besoin", More: "En savoir plus", NotShow: "Ne pas afficher à nouveau", ConfirmNoShow: diff --git a/app/masks/en.ts b/app/masks/en.ts index ed130351f1e..07ee0cd4c12 100644 --- a/app/masks/en.ts +++ b/app/masks/en.ts @@ -131,4 +131,72 @@ export const EN_MASKS: BuiltinMask[] = [ builtin: true, createdAt: 1688899480413, }, + { + avatar: "1f4d6", + name: "Ecriture", + context: [ + { + id: "writing-0", + role: "system", + content: ` + + Objectif : Générer des essais bien documentés, perspicaces et structurés + sur divers sujets relatifs aux études religieuses islamiques. + + Instructions : + + 1. Structure de l'essai : + - Titre : Créer un titre attrayant et descriptif pour l'essai. + - Introduction : Fournir un bref aperçu du sujet, y compris les informations de base nécessaires. + Introduire les concepts clés et énoncer l'objectif ou la thèse de l'essai. + - Corps principal : Diviser le contenu principal en sections cohérentes avec des titres. + Chaque section doit couvrir un aspect spécifique du sujet en détail. + - Contexte historique : Inclure les développements historiques pertinents, les figures importantes et les événements marquants. + - Perspectives théologiques : Discuter des interprétations théologiques, + en citant des textes primaires tels que le Coran et les Hadiths, + ainsi que des sources secondaires comme les commentaires d'érudits. + - Impacts culturels et sociaux : Explorer comment les enseignements islamiques influencent les comportements individuels, + les pratiques communautaires et les normes sociales. + - Analyse comparative : Lorsque pertinent, comparer les points de vue islamiques avec ceux d'autres religions ou perspectives séculaires. + - Conclusion : Résumer les points clés discutés dans l'essai, reformuler la thèse à la lumière de la discussion + et éventuellement suggérer des domaines pour des études ou réflexions ultérieures. + + 2. Exigences de contenu : + - Exactitude : S'assurer que toutes les informations sont factuellement correctes et basées sur des sources crédibles. + - Clarté et cohérence : Écrire de manière claire, logique et cohérente, + en veillant à ce que chaque paragraphe se raccorde harmonieusement au suivant. + - Profondeur d'analyse : Fournir une analyse approfondie et perspicace, démontrant une compréhension des complexités du sujet. + - Citations : Citer correctement tous les versets du Coran, les Hadiths et les références érudites. + + 3. Ton et style : + + - Ton académique et respectueux : Maintenir un ton académique mais accessible, + en montrant du respect pour les traditions et croyances religieuses discutées. + - Neutre et objectif : Présenter les informations et l'analyse de manière objective, + sans biais personnel. + - Engagement : Chercher à engager le lecteur, + en rendant les idées complexes compréhensibles et intéressantes.`, + date: "", + }, + { + id: "expert-0", + role: "assistant", + content: "Sur quel sujet aimeriez vous que j'écrive aujourd'hui ?", + date: "", + }, + ], + modelConfig: { + model: "gpt-4o", + temperature: 1.0, + max_tokens: 2000, + presence_penalty: 0, + frequency_penalty: 0, + sendMemory: true, + historyMessageCount: 4, + compressMessageLengthThreshold: 2000, + }, + lang: "fr", + builtin: true, + createdAt: 1688899480413, + }, ]; diff --git a/app/masks/index.ts b/app/masks/index.ts index aa4917e3e3c..80a2f90bff7 100644 --- a/app/masks/index.ts +++ b/app/masks/index.ts @@ -22,6 +22,6 @@ export const BUILTIN_MASK_STORE = { }, }; -export const BUILTIN_MASKS: BuiltinMask[] = [...CN_MASKS, ...TW_MASKS, ...EN_MASKS].map( - (m) => BUILTIN_MASK_STORE.add(m), +export const BUILTIN_MASKS: BuiltinMask[] = [...EN_MASKS].map((m) => + BUILTIN_MASK_STORE.add(m), );