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),
);