GPT-4

2025

StoryPixAI : Générer des Histoires Enfantines Illustrées avec l'IA et AWS

Logo

Dans cet article, je vous invite à découvrir StoryPixAI, un projet personnel qui marie ma passion pour la technologie et mon envie de créer des expériences magiques pour les enfants. Avec StoryPixAI, j’ai développé une application web interactive permettant aux utilisateurs de générer des histoires personnalisées pour enfants, accompagnées d’illustrations uniques créées par l’intelligence artificielle (IA). Ce projet m’a offert une opportunité unique de plonger dans l’univers de l’IA générative tout en consolidant mes compétences en développement full-stack, DevOps et gestion d’infrastructures cloud.

Lire la suite →

2024

用生成式AI创作儿童故事:StoryPixAI的冒险

Logo

通过 StoryPixAI,我的目标是创建一个交互式网页应用,允许用户生成儿童故事,并由人工智能模型生成的图片进行丰富。为了实现这一目标,我使用了多个AWS服务,如Lambda、API Gateway、DynamoDB、S3和Cognito来进行认证。基础设施代码由Terraform管理,部署通过GitLab CI自动化。在这篇文章中,我将揭示这个令人兴奋的项目背后的故事,包括技术选择和遇到的挑战。

Lire la suite →

生成AIを使った子供のための物語作成:冒険ストーリープロジェクトStoryPixAI

Logo

StoryPixAIの目標は、ユーザーが生成AIモデルによって生成された画像で強化された子供のための物語を生成することを可能にするインタラクティブなWebアプリケーションを作成することでした。これを実現するために、Lambda、API Gateway、DynamoDB、S3、および認証のためにCognitoといった複数のAWSサービスを使用しました。インフラストラクチャのコードはTerraformで管理され、デプロイはGitLab CI経由で自動化されています。このブログ記事では、このエキサイティングなプロジェクトの裏側、技術的選択、および直面した課題について紹介します。

Lire la suite →

जेनरेटिव एआई के साथ बच्चों के लिए कहानियाँ बनाना : स्टोरीपिक्सएआई का साहसिक सफर

Logo

StoryPixAI के साथ मेरा उद्देश्य एक इंटरैक्टिव वेब एप्लिकेशन बनाना था जो उपयोगकर्ताओं को बच्चों के लिए कहानियाँ बनाने की अनुमति देता है, जिनमें AI मॉडल्स द्वारा उत्पन्न चित्र होते हैं। इसे पूरा करने के लिए, मैंने AWS की कई सेवाओं का उपयोग किया जैसे Lambda, API Gateway, DynamoDB, S3 और संज्ञानात्मक प्रमाणीकरण के लिए Cognito। इंफ्रास्ट्रक्चर कोड को Terraform के साथ प्रबंधित किया गया है, और तैनाती को GitLab CI के माध्यम से स्वचालित किया गया है। इस ब्लॉग पोस्ट में, मैं इस रोमांचक परियोजना के पीछे की तकनीकी चुनावों और सामने आई चुनौतियों की झलक प्रस्तुत करता हूँ।

Lire la suite →

إنشاء قصص للأطفال باستخدام الذكاء الاصطناعي التوليدي: مغامرة StoryPixAI

Logo

مع StoryPixAI كان هدفي هو إنشاء تطبيق ويب تفاعلي يسمح للمستخدمين بإنشاء قصص للأطفال، والتي تُثري بالصور المولدة بواسطة نماذج الذكاء الاصطناعي. لتحقيق ذلك، استخدمت عدة خدمات من AWS مثل Lambda، API Gateway، DynamoDB، S3 وCognito للمصادقة. كود البنية التحتية يُدار باستخدام Terraform، والنشر مؤتمت عبر GitLab CI. في هذا المقال، سأكشف لكم كواليس هذا المشروع المثير، من الخيارات التكنولوجية إلى التحديات التي واجهتها.

Lire la suite →

Verhalen voor kinderen maken met Generatieve AI: Het avontuur StoryPixAI

Logo

Met StoryPixAI was mijn doel om een interactieve webapplicatie te creëren waarmee gebruikers verhalen voor kinderen kunnen genereren, verrijkt met afbeeldingen die zijn gegenereerd door kunstmatige intelligentiemodellen. Hiervoor heb ik verschillende AWS-services gebruikt, zoals Lambda, API Gateway, DynamoDB, S3 en Cognito voor authenticatie. De infrastructuurcode wordt beheerd met Terraform en de deployment is geautomatiseerd via GitLab CI. In dit artikel onthul ik de geheimen van dit spannende project, van technologische keuzes tot de uitdagingen die ik ben tegengekomen.

Lire la suite →

Tworzenie Historii dla Dzieci z Generatywną Sztuczną Inteligencją: Przygoda StoryPixAI

Logo

Z StoryPixAI moim celem było stworzenie interaktywnej aplikacji internetowej, która umożliwia użytkownikom generowanie historii dla dzieci, wzbogaconych o obrazy generowane przez modele sztucznej inteligencji. Aby to osiągnąć, użyłem kilku usług AWS, takich jak Lambda, API Gateway, DynamoDB, S3 i Cognito do uwierzytelniania. Kod infrastruktury jest zarządzany za pomocą Terraform, a wdrażanie jest zautomatyzowane za pomocą GitLab CI. W tym wpisie zdradzam kulisy tego ekscytującego projektu, decyzje technologiczne i napotkane wyzwania.

Lire la suite →

Skapa Barnhistorier med Generativ AI: Äventyret StoryPixAI

Logo

Med StoryPixAI var mitt mål att skapa en interaktiv webbapplikation som gör det möjligt för användare att generera barnhistorier, berikade med bilder skapade av artificiella intelligensmodeller. För att uppnå detta använde jag flera AWS-tjänster som Lambda, API Gateway, DynamoDB, S3 och Cognito för autentisering. Infrastrukturkoden hanteras med Terraform, och distributionen automatiseras via GitLab CI. I detta inlägg avslöjar jag projektets bakomliggande val och de utmaningar som mötts.

Lire la suite →

Erstellen von Kindergeschichten mit generativer KI: Das Abenteuer von StoryPixAI

Logo

Mit StoryPixAI war es mein Ziel, eine interaktive Webanwendung zu erstellen, die es den Nutzern ermöglicht, Kindergeschichten zu generieren, die durch Bilder ergänzt werden, die von Modellen der künstlichen Intelligenz erstellt wurden. Um dies zu realisieren, habe ich mehrere AWS-Dienste wie Lambda, API Gateway, DynamoDB, S3 und Cognito für die Authentifizierung verwendet. Der Infrastrukturcode wird mit Terraform verwaltet und die Bereitstellung ist über GitLab CI automatisiert. In diesem Beitrag enthülle ich die Hintergründe dieses spannenden Projekts, von technologischen Entscheidungen bis hin zu den Herausforderungen, denen ich begegnet bin.

Lire la suite →

Criar Histórias para Crianças com IA Generativa: A Aventura StoryPixAI

Logo

Com StoryPixAI meu objetivo era criar um aplicativo web interativo que permitisse aos usuários gerar histórias para crianças, enriquecidas com imagens geradas por modelos de inteligência artificial. Para realizar isso, utilizei vários serviços AWS, como Lambda, API Gateway, DynamoDB, S3 e Cognito para autenticação. O código da infraestrutura é gerido com Terraform, e a implantação é automatizada via GitLab CI. Neste post, revelo os bastidores deste projeto empolgante, desde as escolhas tecnológicas até os desafios enfrentados.

Lire la suite →

Créer des Histoires pour Enfants avec l'IA Générative : L'aventure StoryPixAI

Logo

Avec StoryPixAI mon objectif était de créer une application web interactive permettant aux utilisateurs de générer des histoires pour enfants, enrichies par des images générées par des modèles d’intelligence artificielle. Pour réaliser cela, j’ai utilisé plusieurs services AWS tels que Lambda, API Gateway, DynamoDB, S3 et Cognito pour l’authentification. Le code de l’infrastructure est géré avec Terraform, et le déploiement est automatisé via GitLab CI. Dans ce billet, je vous dévoile les coulisses de ce projet passionnant, des choix technologiques aux défis rencontrés.

Lire la suite →

Creating Children's Stories with Generative AI: The StoryPixAI Adventure

Logo

With StoryPixAI, my goal was to create an interactive web application allowing users to generate children’s stories, enriched by images generated by artificial intelligence models. To achieve this, I used several AWS services such as Lambda, API Gateway, DynamoDB, S3, and Cognito for authentication. The infrastructure code is managed with Terraform, and the deployment is automated via GitLab CI. In this post, I unveil the behind-the-scenes of this exciting project, from technological choices to challenges encountered.

Lire la suite →

Crearea Poveștilor pentru Copii cu IA Generativă: Aventura StoryPixAI

Logo

Cu StoryPixAI, obiectivul meu a fost să creez o aplicație web interactivă care să permită utilizatorilor să genereze povești pentru copii, îmbogățite cu imagini generate de modele de inteligență artificială. Pentru a realiza aceasta, am folosit mai multe servicii AWS precum Lambda, API Gateway, DynamoDB, S3 și Cognito pentru autentificare. Codul infrastructurii este gestionat cu Terraform, iar implementarea este automatizată prin GitLab CI. În acest articol, vă dezvălui culisele acestui proiect palpitant, de la alegerile tehnologice până la provocările întâmpinate.

Lire la suite →

Creare Storie per Bambini con l'IA Generativa: L'avventura StoryPixAI

Logo

Con StoryPixAI il mio obiettivo era di creare un’applicazione web interattiva che permettesse agli utenti di generare storie per bambini, arricchite da immagini generate da modelli di intelligenza artificiale. Per realizzare ciò, ho utilizzato diversi servizi AWS come Lambda, API Gateway, DynamoDB, S3 e Cognito per l’autenticazione. Il codice dell’infrastruttura è gestito con Terraform, e il deployment è automatizzato tramite GitLab CI. In questo post, vi svelerò i retroscena di questo progetto appassionante, dalle scelte tecnologiche alle sfide incontrate.

Lire la suite →

Crear Historias para Niños con IA Generativa: La Aventura StoryPixAI

Logo

Con StoryPixAI, mi objetivo era crear una aplicación web interactiva que permitiera a los usuarios generar historias para niños, enriquecidas con imágenes generadas por modelos de inteligencia artificial. Para lograrlo, utilicé varios servicios de AWS como Lambda, API Gateway, DynamoDB, S3 y Cognito para la autenticación. El código de la infraestructura se gestiona con Terraform, y el despliegue está automatizado a través de GitLab CI. En esta entrada, les revelo los entresijos de este emocionante proyecto, desde las elecciones tecnológicas hasta los desafíos encontrados.

Lire la suite →

AI 생성기를 사용하여 어린이 이야기 만들기 : StoryPixAI의 모험

Logo

StoryPixAI를 통해 내 목표는 사용자가 인공지능 모델이 생성한 이미지로 채워진 어린이 이야기를 생성할 수 있게 하는 인터랙티브 웹 애플리케이션을 만드는 것이었습니다. 이를 위해 Lambda, API Gateway, DynamoDB, S3, Cognito와 같은 여러 AWS 서비스를 사용했습니다. 인프라 코드는 Terraform을 통해 관리되고, 배포는 GitLab CI를 통해 자동화됩니다. 이 블로그 글에서는 흥미진진한 이 프로젝트의 후기를 기술 선택에서 겪은 도전 과제까지 공개합니다.

Lire la suite →

我的博客翻译脚本的演进:整合 Mistral AI

Logo

在这篇文章中,我将向您介绍我使用人工智能进行博客翻译的脚本的演进,以及整合 Mistral AI 技术的过程。要查看所有语言的结果,我邀请您访问这个页面:使用 Mistral AI 的翻译

Lire la suite →

我的博客翻译脚本的演变:集成Mistral AI

在这篇文章中,我将与您分享我的博客翻译脚本的演变,该脚本使用人工智能,并集成了Mistral AI技术。要查看所有语言的结果,请访问此页面:Mistral AI翻译

Lire la suite →

博客翻译脚本的演进:整合 Mistral AI

在本文中,我将与您分享使用人工智能的博客翻译脚本的演进,并整合了 Mistral AI 技术。要在所有语言中查看结果,请访问此页面:使用 Mistral AI 进行翻译

为什么要这个脚本?

我的翻译脚本的目标是使我的博客文章能够在多种语言中获得,通过自动化其翻译。想象一下一个智能翻译器,能够阅读法语文章并忠实地将其还原为英语、西班牙语或其他语言,同时保留原始格式。这就是我的脚本所做的,它利用了最新的人工智能进步。

初始脚本的主要功能

  1. 自动翻译:使用 OpenAI 或 Mistral AI API 进行精确翻译。
  2. 保留格式:脚本保留了原始格式,包括代码块和链接。
  3. 多语言:能够翻译成多种语言。
  4. 支持 Markdown:适用于常用于博客中的 Markdown 文件。
  5. 自动化:通过单个命令翻译多篇文章。

整合 Mistral AI 的新功能

Mistral AI 整合

Mistral AI 是一个提供自然语言处理服务的先进人工智能平台。通过整合 Mistral AI,我可以扩大我的脚本的翻译和自动化能力,充分利用另一个强大的人工智能资源。此外,Mistral AI 是一家法国公司!

智能文本分段

脚本现在可以将长文本分段,以便更好地适应 AI 模型的令牌限制,从而更有效地管理大量文本的翻译。

添加翻译说明

新功能可以在翻译后的文档末尾添加翻译说明,告知读者翻译过程。

选择 OpenAI 和 Mistral AI

脚本现在提供了选择 OpenAI 和 Mistral AI 进行翻译的灵活性,根据用户的具体需求和首选项。

文件和目录管理

改进了文件和目录的管理,允许在必要时排除某些部分的翻译过程。

脚本代码

更新后的脚本可以在 我的 GitLab 上查找。

您还可以在此处找到它的当前版本:

#!/usr/bin/env python3

import os
import argparse
import time
from openai import OpenAI
import re
from mistralai.client import MistralClient
from mistralai.models.chat_completion import ChatMessage

EXCLUDE_PATTERNS = ["traductions_"]

# Initialisation de la configuration avec les valeurs par défaut
DEFAULT_OPENAI_API_KEY = "votre-clé-api-openai-par-défaut"
DEFAULT_MISTRAL_API_KEY = "votre-clé-api-mistral-par-défaut"
DEFAULT_MODEL_OPENAI = "gpt-4-1106-preview"
DEFAULT_MODEL_MISTRAL = "mistral-medium"
DEFAULT_SOURCE_LANG = "fr"
DEFAULT_TARGET_LANG = "en"
DEFAULT_SOURCE_DIR = "content/posts"
DEFAULT_TARGET_DIR = "traductions_en"
MODEL_TOKEN_LIMITS = {
    "gpt-4-1106-preview": 4096,
    "gpt-4-vision-preview": 4096,
    "gpt-4": 8192,
    "gpt-4-32k": 32768,
    "gpt-4-0613": 8192,
    "gpt-4-32k-0613": 32768,
}


def segment_text(text, max_length):
    """
    Divise un texte Markdown en segments ne dépassant pas la longueur maximale spécifiée,
    en essayant de conserver des points de coupure naturels.

    Args:
        text (str): Texte Markdown à diviser.
        max_length (int): Longueur maximale de chaque segment.

    Returns:
        list[str]: Liste des segments de texte Markdown.
    """
    segments = []
    while text:
        if len(text) <= max_length:
            segments.append(text)
            break
        segment = text[:max_length]
        next_index = max_length

        # Recherche de points de coupure naturels (fin de phrase, fin de paragraphe, fin de titre)
        last_good_break = max(
            segment.rfind(". "), segment.rfind("\n\n"), segment.rfind("\n#")
        )
        if last_good_break != -1:
            next_index = last_good_break + 1

        segments.append(text[:next_index])
        text = text[next_index:]

    return segments


def translate(text, client, args, use_mistral=False, is_translation_note=False):
    """
    Traduit un texte en utilisant les services de traduction d'OpenAI ou Mistral AI.
    Cette fonction segmente d'abord le texte pour s'assurer qu'il respecte la limite de tokens du modèle.
    Elle utilise un argument optionnel 'is_translation_note' pour gérer différemment les notes de traduction.

    Args:
        text (str): Texte à traduire.
        client: Client de l'API de traduction (OpenAI ou Mistral AI).
        args: Arguments contenant les informations de configuration.
        use_mistral (bool): Indique si l'API Mistral AI doit être utilisée (True) ou l'API OpenAI (False).
        is_translation_note (bool): Indique si le texte est une note de traduction, ce qui nécessite un traitement spécial.

    Returns:
        str: Texte traduit.
    """
    model_limit = MODEL_TOKEN_LIMITS.get(args.model, 4096)

    segments = segment_text(text, model_limit)
    translated_segments = []

    for segment in segments:
        try:
            prompt_message = ""
            if is_translation_note:
                prompt_message = f"Translate this exact sentence to {args.target_lang}, without any additions or explanations: '{segment}'"
            else:
                prompt_message = f"Please translate this text from {args.source_lang} to {args.target_lang}, and do not translate or change URLs, image paths, and code blocks (delimited by ```) : {segment}"

            if use_mistral:
                messages = [ChatMessage(role="user", content=prompt_message)]
                response = client.chat(model=args.model, messages=messages)
            else:
                messages = [
                    {"role": "system", "content": prompt_message},
                    {"role": "user", "content": segment},
                ]
                response = client.chat.completions.create(
                    model=args.model, messages=messages
                )
            translated_text = response.choices[0].message.content.strip()
        except Exception as e:
            raise RuntimeError(f"Erreur lors de la traduction : {e}")

        translated_segments.append(translated_text)

    return " ".join(translated_segments)


def add_translation_note(client, args, use_mistral):
    """
    Génère et traduit une note de traduction.

    Args:
        client: Objet client de traduction.
        args: Arguments contenant les informations de langue source et cible, et le modèle utilisé.
        use_mistral (bool): Indique si l'API Mistral AI doit être utilisée pour la traduction.

    Returns:
        str: Note de traduction traduite.
    """
    translation_note_src = f"Ce document a été traduit de la version {args.source_lang} par le modèle {args.model}."
    try:
        # Utiliser un prompt très spécifique pour Mistral AI
        if use_mistral:
            prompt_message = f"Translate this exact sentence to {args.target_lang}, without any additions or explanations: '{translation_note_src}'"
            messages = [ChatMessage(role="user", content=prompt_message)]
            response = client.chat(model=args.model, messages=messages)
            translated_note = response.choices[0].message.content.strip()
        else:
            # Pour OpenAI
            messages = [
                {
                    "role": "system",
                    "content": f"Translate this exact sentence to {args.target_lang}, without any additions or explanations: '{translation_note_src}'",
                },
                {"role": "user", "content": translation_note_src},
            ]
            response = client.chat.completions.create(
                model=args.model, messages=messages
            )
            translated_note = response.choices[0].essage.content.strip()

        return f"\n\n**{translated_note}**\n\n"
    except Exception as e:
        raise RuntimeError(f"Erreur lors de l'ajout de la note de traduction : {e}")


def translate_markdown_file(
    file_path, output_path, client, args, use_mistral, add_translation_note=False
):
    """
    Traduit un fichier Markdown en utilisant les modèles de traitement du langage naturel de OpenAI ou Mistral AI.

    Args:
        file_path (str): Chemin complet vers le fichier d'entrée.
        output_path (str): Chemin complet vers le fichier de sortie.
        client: Objet client de traduction.
        args: Arguments supplémentaires pour la traduction.
        use_mistral (bool): Indique si l'API Mistral AI doit être utilisée pour la traduction.
        add_translation_note (bool): Indique si une note de traduction doit être ajoutée.

    Returns:
        None
    """
    try:
        # Calcul des chemins relatifs pour un affichage plus lisible
        relative_file_path = os.path.join(
            args.source_dir, os.path.relpath(file_path, start=args.source_dir)
        )
        relative_output_path = os.path.join(
            args.target_dir, os.path.relpath(output_path, start=args.target_dir)
        )

        print(f"Traitement du fichier : {relative_file_path}")
        start_time = time.time()

        # Lecture du contenu du fichier
        with open(file_path, "r", encoding="utf-8") as f:
            content = f.read()

        # Extraction et remplacement temporaire des blocs de code pour éviter leur traduction
        code_blocks = re.findall(
            r"(^```[a-zA-Z]*\n.*?\n^```)", content, flags=re.MULTILINE | re.DOTALL
        )
        placeholders = [f"#CODEBLOCK{index}#" for index, _ in enumerate(code_blocks)]
        for placeholder, code_block in zip(placeholders, code_blocks):
            content = content.replace(code_block, placeholder)

        # Traduction du contenu
        translated_content = translate(content, client, args, use_mistral)

        # Restauration des blocs de code dans le contenu traduit
        for placeholder, code_block in zip(placeholders, code_blocks):
            translated_content = translated_content.replace(placeholder, code_block)

        # Ajout de la note de traduction si nécessaire
        if add_translation_note:
            translation_note = translate(
                "Ce document a été traduit de la version "
                + args.source_lang
                + " par le modèle "
                + args.model
                + ".",
                client,
                args,
                use_mistral,
                True,
            )
            translated_content += "\n\n**" + translation_note + "**\n\n"

        # Écriture du contenu traduit dans le fichier de sortie
        clean_output_path = os.path.normpath(output_path)
        with open(clean_output_path, "w", encoding="utf-8") as f:
            f.write(translated_content)

        end_time = time.time()
        print(
            f"Fichier '{relative_file_path}' traduit en {end_time - start_time:.2f} secondes et enregistré sous : {relative_output_path}"
        )
    except IOError as e:
        print(f"Erreur lors du traitement du fichier '{relative_file_path}': {e}")
    except Exception as e:
        print(
            f"Une erreur inattendue est survenue lors de la traduction du fichier '{relative_file_path}': {e}"
        )


def is_excluded(path):
    """
    Vérifie si le chemin donné correspond à l'un des motifs d'exclusion.

    Cette fonction parcourt la liste des motifs d'exclusion définis dans EXCLUDE_PATTERNS.
    Si l'un de ces motifs est trouvé dans le chemin fourni, la fonction renvoie True,
    indiquant que le chemin doit être exclu du processus de traduction.

    Args:
        path (str): Le chemin du fichier ou du répertoire à vérifier.

    Returns:
        bool: True si le chemin correspond à l'un des motifs d'exclusion, False sinon.
    """
    for pattern in EXCLUDE_PATTERNS:
        if pattern in path:
            return True
    return False


def translate_directory(
    input_dir, output_dir, client, args, use_mistral, add_translation_note
):
    """
    Traduit tous les fichiers markdown dans le répertoire d'entrée et ses sous-répertoires.

    Args:
        input_dir (str): Chemin vers le répertoire d'entrée.
        output_dir (str): Chemin vers le répertoire de sortie.
        client: Objet client de traduction.
        args: Arguments supplémentaires pour la traduction.
        use_mistral (bool): Indique si l'API Mistral AI doit être utilisée pour la traduction.
        add_translation_note (bool): Indique si une note de traduction doit être ajoutée.

    Returns:
        None
    """
    input_dir = os.path.abspath(input_dir)
    output_dir = os.path.abspath(output_dir)

    if not os.path.exists(output_dir):
        os.makedirs(output_dir)

    output_base_dir = os.path.basename(output_dir)

    for root, dirs, files in os.walk(input_dir, topdown=True):
        if is_excluded(root) or root.startswith(output_dir):
            continue

        if (
            os.path.basename(root) == output_base_dir
            and os.path.abspath(os.path.join(root, "..")) == input_dir
        ):
            continue

        for file in files:
            if file.endswith(".md") and not is_excluded(file):
                file_path = os.path.join(root, file)
                base, _ = os.path.splitext(file)
                output_file = f"{base}-{args.model}-{args.target_lang}.md"
                relative_path = os.path.relpath(root, input_dir)
                output_path = os.path.join(output_dir, relative_path, output_file)

                os.makedirs(os.path.dirname(output_path), exist_ok=True)

                if not os.path.exists(output_path):
                    translate_markdown_file(
                        file_path,
                        output_path,
                        client,
                        args,
                        use_mistral,
                        add_translation_note,
                    )
                    print(f"Fichier '{file}' traité.")


def main():
    """
    Point d'entrée principal du script de traduction de fichiers Markdown.

    Ce script traduit des fichiers Markdown d'une langue source à une langue cible en utilisant
    les services de traduction de l'API OpenAI ou Mistral AI. Il prend en charge la segmentation
    des textes longs et peut également ajouter une note de traduction en fin de document.

    Arguments du script:
    --source_dir: Répertoire contenant les fichiers Markdown à traduire.
    --target_dir: Répertoire de destination pour les fichiers traduits.
    --model: Modèle de traduction GPT à utiliser.
    --target_lang: Langue cible pour la traduction.
    --source_lang: Langue source des documents.
    --use_mistral: Indicateur pour utiliser l'API Mistral AI pour la traduction.
    --add_translation_note: Indicateur pour ajouter une note de traduction au contenu traduit.
    """
    parser = argparse.ArgumentParser(description="Traduit les fichiers Markdown.")
    parser.add_argument(
        "--source_dir",
        type=str,
        default=DEFAULT_SOURCE_DIR,
        help="Répertoire source contenant les fichiers Markdown",
    )
    parser.add_argument(
        "--target_dir",
        type=str,
        default=DEFAULT_TARGET_DIR,
        help="Répertoire cible pour sauvegarder les traductions",
    )
    parser.add_argument(
        "--model", type=str, help="Modèle GPT à utiliser pour la traduction"
    )
    parser.add_argument(
        "--target_lang",
        type=str,
        default=DEFAULT_TARGET_LANG,
        help="Langue cible pour la traduction",
    )
    parser.add_argument(
        "--source_lang",
        type=str,
        default=DEFAULT_SOURCE_LANG,
        help="Langue source pour la traduction",
    )
    parser.add_argument(
        "--use_mistral",
        action="store_true",
        help="Utiliser l'API Mistral AI pour la traduction",
    )
    parser.add_argument(
        "--add_translation_note",
        action="store_true",
        help="Ajouter une note de traduction au contenu traduit",
    )

    args = parser.parse_args()

    if not os.path.isdir(args.source_dir):
        raise ValueError(
            f"Le répertoire source spécifié n'existe pas : {args.source_dir}"
        )
    if not os.path.exists(args.target_dir):
        os.makedirs(args.target_dir)

    if args.use_mistral:
        args.model = args.model if args.model else DEFAULT_MODEL_MISTRAL
        api_key = os.getenv("MISTRAL_API_KEY", DEFAULT_MISTRAL_API_KEY)
        if not api_key:
            raise ValueError("Clé API Mistral non spécifiée.")
        client = MistralClient(api_key=api_key)
    else:
        args.model = args.model if args.model else DEFAULT_MODEL_OPENAI
        openai_api_key = os.getenv("OPENAI_API_KEY", DEFAULT_OPENAI_API_KEY)
        if not openai_api_key:
            raise ValueError("Clé API OpenAI non spécifiée.")
        client = OpenAI(api_key=openai_api_key)

    translate_directory(
        args.source_dir,
        args.target_dir,
        client,
        args,
        args.use_mistral,
        args.add_translation_note,
    )

    if args.use_mistral:
        try:
            del client
        except TypeError:
            pass


if __name__ == "__main__":
    main()

请继续关注更多关于人工智能有趣世界的更新和创新!

Lire la suite →

ブログ翻訳スクリプトの進化:Mistral AIの統合

Logo

この記事では、人工知能を利用したブログ翻訳スクリプトの進化について、Mistral AI技術の統合を交えてお話しします。すべての言語での結果を確認するには、こちらのページをご覧ください:Mistral AIによる翻訳

Lire la suite →

블로그 번역 스크립트의 진화: Mistral AI 통합

Logo

이 글에서는 인공지능을 사용한 블로그 번역 스크립트의 진화와 Mistral AI 기술 통합에 대해 이야기하겠습니다. 모든 언어로 된 결과를 보려면 이 페이지를 방문해 주세요: Mistral AI 번역.

Lire la suite →

मेरे ब्लॉग अनुवाद स्क्रिप्ट का विकास: मिस्त्रल एआई का एकीकरण

Logo

इस लेख में, मैं कृत्रिम बुद्धिमत्ता का उपयोग करके अपने ब्लॉग अनुवाद स्क्रिप्ट के विकास के बारे में बात करूंगा, जिसमें मिस्त्रल एआई तकनीक का एकीकरण शामिल है। सभी भाषाओं में परिणाम देखने के लिए, कृपया इस पृष्ठ पर जाएं: मिस्त्रल एआई के साथ अनुवाद

Lire la suite →

تطور سكريبت ترجمة المدونة الخاص بي: دمج Mistral AI

Logo

في هذه المقالة، سأتحدث عن تطور سكريبت ترجمة المدونة الخاص بي باستخدام الذكاء الاصطناعي، مع دمج تكنولوجيا Mistral AI. لاكتشاف النتائج بجميع اللغات، أدعوكم لزيارة هذه الصفحة: الترجمات مع Mistral AI.

Lire la suite →

Utveckling av mitt Bloggöversättningsscript: Integrering av Mistral AI

Logo

I den här artikeln kommer jag att prata om utvecklingen av mitt bloggöversättningsscript som använder artificiell intelligens, med integrering av Mistral AI-teknologi. För att upptäcka resultaten på alla språk, besök denna sida: Översättningar med Mistral AI.

Lire la suite →

Ewolucja mojego Skryptu Tłumaczenia Bloga: Integracja z Mistral AI

Logo

W tym artykule opowiem o ewolucji mojego skryptu tłumaczenia bloga z wykorzystaniem sztucznej inteligencji, integrując technologię Mistral AI. Aby odkryć wyniki we wszystkich językach, zapraszam na tę stronę: Tłumaczenia z Mistral AI.

Lire la suite →

Evoluzione del mio Script di Traduzione del Blog: Integrazione di Mistral AI

Logo

In questo articolo, parlerò dell’evoluzione del mio script di traduzione del blog utilizzando l’intelligenza artificiale, con l’integrazione della tecnologia Mistral AI. Per scoprire i risultati in tutte le lingue, vi invito a visitare questa pagina: Traduzioni con Mistral AI.

Lire la suite →

Evolution of my Blog Translation Script: Integration of Mistral AI

In this article, I will talk to you about the evolution of my blog translation script using artificial intelligence, with the integration of Mistral AI technology. To discover the results in all languages, I invite you to visit this page: Translations with Mistral AI.

Why this Script?

The goal of my translation script is to make my blog articles accessible in several languages, by automating their translation. Imagine an intelligent translator capable of reading an article in French and restoring it faithfully in English, Spanish or other languages, while preserving the original format. That’s what my script does, by leveraging the latest advances in AI.

Lire la suite →

Evolution of my Blog Translation Script: Integration of Mistral AI

Logo

In this article, I will talk about the evolution of my blog translation script using artificial intelligence, with the integration of Mistral AI technology. To see results in all languages, I invite you to visit this page: Translations with Mistral AI.

Lire la suite →

Evolution of my Blog Translation Script: Integration of Mistral AI

In this article, I will talk about the evolution of my blog translation script using artificial intelligence, with the integration of Mistral AI technology. To discover the results in all languages, I invite you to visit this page: Translations with Mistral AI.

Lire la suite →

Évolution de mon Script de Traduction de Blog : Intégration de Mistral AI

Logo

Dans cet article, je vais vous parler de l’évolution de mon script de traduction de blog utilisant l’intelligence artificielle, avec l’intégration de la technologie Mistral AI. Pour découvrir les résultats dans toutes les langues, je vous invite à visiter cette page : Traductions avec Mistral AI.

Lire la suite →

Evolutie van mijn Blog Vertalingsscript: Integratie van Mistral AI

Logo

In dit artikel zal ik het hebben over de evolutie van mijn blogvertaalscript dat gebruikmaakt van kunstmatige intelligentie, met de integratie van de Mistral AI-technologie. Om de resultaten in alle talen te ontdekken, nodig ik je uit om deze pagina te bezoeken: Vertalingen met Mistral AI.

Lire la suite →

Evoluția Scriptului meu de Traducere a Blogului: Integrarea Mistral AI

Logo

În acest articol, vă voi vorbi despre evoluția scriptului meu de traducere a blogului utilizând inteligența artificială, cu integrarea tehnologiei Mistral AI. Pentru a descoperi rezultatele în toate limbile, vă invit să vizitați această pagină: Traduceri cu Mistral AI.

Lire la suite →

Evolución de mi Script de Traducción de Blog: Integración de Mistral AI

En este artículo, te hablaré sobre la evolución de mi script de traducción de blog utilizando la inteligencia artificial, con la integración de la tecnología Mistral AI. Para descubrir los resultados en todos los idiomas, te invito a visitar esta página: Traducciones con Mistral AI.

Por qué este Script?

El objetivo de mi script de traducción es hacer que mis artículos de blog sean accesibles en varios idiomas, automatizando su traducción. Imagina un traductor inteligente capaz de leer un artículo en francés y devolverlo fielmente en inglés, español u otros idiomas, manteniendo el formato original. Eso es lo que hace mi script, aprovechando los últimos avances de la IA.

Lire la suite →

Evolución de mi Script de Traducción de Blog: Integración de Mistral AI

Logo

En este artículo, voy a hablarles sobre la evolución de mi script de traducción de blog que utiliza la inteligencia artificial, con la integración de la tecnología Mistral AI. Para descubrir los resultados en todos los idiomas, les invito a visitar esta página: Traducciones con Mistral AI.

Lire la suite →

Evolución de mi Script de Traducción de Blog: Integración de Mistral AI

En este artículo, les hablaré sobre la evolución de mi script de traducción de blog utilizando la inteligencia artificial, con la integración de la tecnología Mistral AI. Para descubrir los resultados en todos los idiomas, los invito a visitar esta página: Traducciones con Mistral AI.

Lire la suite →

Evolução do Meu Script de Tradução de Blog: Integração do Mistral AI

Logo

Neste artigo, vou falar sobre a evolução do meu script de tradução de blog utilizando a inteligência artificial, com a integração da tecnologia Mistral AI. Para descobrir os resultados em todas as línguas, eu convido você a visitar esta página: Traduções com Mistral AI.

Lire la suite →

Entwicklung meines Blog-Übersetzungsskripts: Integration von Mistral AI

Logo

In diesem Artikel werde ich über die Entwicklung meines Blog-Übersetzungsskripts unter Verwendung künstlicher Intelligenz sprechen, mit der Integration der Technologie von Mistral AI. Um die Ergebnisse in allen Sprachen zu sehen, lade ich Sie ein, diese Seite zu besuchen: Übersetzungen mit Mistral AI.

Lire la suite →

用人工智能革新博客文章翻译

Logo

在这篇文章中,我分享了一个作为概念验证(POC)开发的Python脚本,用于自动化翻译我的博客帖子,利用OpenAI的GPT-4语言模型。这个脚本专为处理我的Hugo博客结构中的Markdown文件设计,使管理我的文章的多语言变得更加容易。这些文章可用英语西班牙语中文查阅。

Lire la suite →

用IA革新博客文章翻译

在这篇文章中,我分享了一个作为概念证明(POC)开发的Python脚本,用于自动化翻译我的博客文章,使用OpenAI的GPT-4语言模型。这个脚本专门设计用于处理Hugo博客的Markdown文件结构,便于管理多语言文章。它们可以在英文西班牙文中文中获得。

Lire la suite →

用AI彻底改变博客文章翻译

在这篇文章中,我分享了一个Python脚本,作为一个概念验证(POC),使用OpenAI的GPT-4语言模型自动翻译我的博客文章。这个脚本专门设计用于处理我的Hugo博客结构中的Markdown文件,方便管理我文章的多语言版本。它们有英文西班牙文中文版本。

Lire la suite →

ブログ記事の翻訳をAIで革命する

Logo

この記事では、OpenAI の GPT-4 言語モデルを使用してブログの投稿を自動翻訳するために作成された Proof of Concept (POC) 用の Python スクリプトを共有します。このスクリプトは、Hugo ブログ構造内の Markdown ファイルを処理するために特別に設計されており、記事の多言語管理を容易にします。これらの記事は 英語スペイン語中国語 で利用可能です。

Lire la suite →

블로그 게시물 번역의 혁신: AI와 함께하는 변화

Logo

이 기사에서는 OpenAI의 GPT-4 언어 모델을 사용하여 블로그 게시물의 번역을 자동화하기 위해 개발된 Proof of Concept (POC) Python 스크립트를 공유합니다. 이 스크립트는 특히 제 Hugo 블로그 구조에서 Markdown 파일을 처리하도록 설계되어 다국어 관리가 용이합니다. 이들은 영어, 스페인어, 중국어로 제공됩니다.

Lire la suite →

एआई के साथ ब्लॉग लेखों के अनुवाद में क्रांति

Logo

इस लेख में, मैं एक पीओसी (प्रूफ़ ऑफ़ कॉन्सेप्ट) के रूप में एक पाइथन स्क्रिप्ट साझा कर रहा हूँ, जो ओपनएआई के GPT-4 भाषा मॉडल का उपयोग करके मेरे ब्लॉग पोस्टों के अनुवाद को स्वचालित करने के लिए विकसित की गई है। यह स्क्रिप्ट विशेष रूप से मेरे ह्यूगो ब्लॉग की संरचना में मार्कडाउन फाइलों को प्रोसेस करने के लिए डिज़ाइन की गई है, जिससे मेरे लेखों की बहुभाषी प्रबंधन में सुविधा हो। वे अंग्रेजी, स्पेनिश और चीनी में उपलब्ध हैं।

Lire la suite →

إحداث ثورة في ترجمة مقالات المدونة باستخدام الذكاء الاصطناعي

Logo

في هذه المقالة، أشارك سكربت بايثون طورته كعرض مفهوم (POC) لأتمتة ترجمة منشورات مدونتي، باستخدام نموذج اللغة GPT-4 من OpenAI. هذا السكربت مصمم خصيصاً لمعالجة ملفات Markdown في هيكل مدونتي Hugo، مما يسهل إدارة المقالات متعددة اللغات. وهي متاحة باللغات الإنجليزية، الإسبانية و الصينية.

Lire la suite →

Rivoluzionare le Traduzioni degli Articoli del Blog con l'IA

Logo

In questo articolo, condivido uno script Python sviluppato come Proof of Concept (POC) per automatizzare la traduzione dei post del mio blog, utilizzando il modello di linguaggio GPT-4 di OpenAI. Questo script è specificamente progettato per trattare file Markdown nella struttura del mio blog Hugo, facilitando la gestione multilingue dei miei articoli. Sono disponibili in Inglese, Spagnolo e Cinese.

Lire la suite →

Rewolucjonizowanie Tłumaczeń Artykułów Blogowych za pomocą SI

Logo

W tym artykule dzielę się skryptem Python opracowanym jako Proof of Concept (POC) do automatyzacji tłumaczeń postów mojego bloga, wykorzystując model językowy GPT-4 od OpenAI. Ten skrypt jest specjalnie zaprojektowany do przetwarzania plików Markdown w strukturze mojego bloga Hugo, ułatwiając zarządzanie wielojęzycznymi artykułami. Są one dostępne po Angielsku, Hiszpańsku i Chińsku.

Lire la suite →

Révolutionner les Traductions d'articles de Blog avec l'IA

Logo

Dans cet article, je partage un script Python développé comme un Proof of Concept (POC) pour automatiser la traduction des posts de mon blog, en utilisant le modèle de langage GPT-4 d’OpenAI. Ce script est spécifiquement conçu pour traiter des fichiers Markdown dans la structure de mon blog Hugo, facilitant la gestion multilingue de mes articles. Ils sont disponibles en Anglais, Espagnol et Chinois.

Lire la suite →

Revolutionizing Blog Post Translations with AI

In this article, I share a Python script developed as a Proof of Concept (POC) to automate the translation of my blog posts using OpenAI’s GPT-4 language model. This script is specifically designed to handle Markdown files in the structure of my Hugo blog, making it easy to manage multilingual articles. They are available in English, Spanish, and Chinese.

Lire la suite →

Revolutionizing Blog Post Translations with AI

In this article, I share a Python script developed as a Proof of Concept (POC) to automate the translation of my blog posts, using OpenAI’s GPT-4 language model. This script is specifically designed to process Markdown files in my Hugo blog’s structure, facilitating multilingual management of my articles. They are available in English, Spanish and Chinese.

Lire la suite →

Revolutionizing Blog Article Translations with AI

Logo

In this article, I share a Python script developed as a Proof of Concept (POC) for automating the translation of my blog posts, using OpenAI’s GPT-4 language model. This script is specifically designed to process Markdown files in the structure of my Hugo blog, facilitating the multilingual management of my articles. They are available in English, Spanish and Chinese.

Lire la suite →

Revolutionieren Sie die Übersetzungen von Blogartikeln mit KI

Logo

In diesem Artikel teile ich ein Python-Skript, das als Proof of Concept (POC) entwickelt wurde, um die Übersetzung meiner Blogbeiträge zu automatisieren, indem das Sprachmodell GPT-4 von OpenAI verwendet wird. Dieses Skript ist speziell darauf ausgelegt, Markdown-Dateien in der Struktur meines Hugo-Blogs zu verarbeiten und die mehrsprachige Verwaltung meiner Artikel zu erleichtern. Sie sind verfügbar in Englisch, Spanisch und Chinesisch.

Lire la suite →

Revolutionera Bloggartikelöversättningar med AI

Logo

I den här artikeln delar jag ett Python-skript utvecklat som ett Proof of Concept (POC) för att automatisera översättningen av mina blogginlägg, med hjälp av OpenAI:s GPT-4 språkmodell. Detta skript är specifikt utformat för att hantera Markdown-filer i strukturen av min Hugo-blogg, vilket underlättar flerspråkig hantering av mina artiklar. De finns tillgängliga på Engelska, Spanska och Kinesiska.

Lire la suite →

Revoluționați Traducerile Articolelor de Blog cu IA

Logo

În acest articol, împărtășesc un script Python dezvoltat ca un Proof of Concept (POC) pentru automatizarea traducerii postărilor de pe blogul meu, folosind modelul de limbaj GPT-4 de la OpenAI. Acest script este special conceput pentru a procesa fișiere Markdown în structura blogului meu Hugo, facilitând gestionarea multilingvă a articolelor mele. Ele sunt disponibile în Engleză, Spaniolă și Chineză.

Lire la suite →

Revolutionaire Blog Artikelen Vertalen met AI

Logo

In dit artikel deel ik een Python-script dat ontwikkeld is als een Proof of Concept (POC) om de vertaling van mijn blogposts te automatiseren, met behulp van het GPT-4-taalmodel van OpenAI. Dit script is specifiek ontworpen om Markdown-bestanden in de structuur van mijn Hugo-blog te verwerken, wat het beheer van meertalige artikelen vergemakkelijkt. Ze zijn beschikbaar in het Engels, Spaans en Chinees.

Lire la suite →

Revolucionar las Traducciones de Entradas de Blog con IA

En este artículo, comparto un script de Python desarrollado como una Prueba de Concepto (POC) para automatizar la traducción de las entradas de mi blog, utilizando el modelo de lenguaje GPT-4 de OpenAI. Este script está específicamente diseñado para procesar archivos Markdown en la estructura de mi blog Hugo, facilitando la gestión multilingüe de mis entradas. Están disponibles en Inglés, Español y Chino.

Lire la suite →

Revolucionar las Traducciones de Artículos de Blog con la IA

Logo

En este artículo, comparto un script Python desarrollado como un Proof of Concept (POC) para automatizar la traducción de posts de mi blog, utilizando el modelo de lenguaje GPT-4 de OpenAI. Este script está diseñado específicamente para tratar archivos Markdown en la estructura de mi blog Hugo, facilitando la gestión multilingüe de mis artículos. Están disponibles en Inglés, Español y Chino.

Lire la suite →

Revolucionar las Traducciones de Artículos de Blog con IA

En este artículo, comparto un script de Python desarrollado como una Prueba de Concepto (POC) para automatizar la traducción de las publicaciones de mi blog, utilizando el modelo de lenguaje GPT-4 de OpenAI. Este script está específicamente diseñado para procesar archivos Markdown en la estructura de mi blog Hugo, facilitando la gestión multilingüe de mis artículos. Están disponibles en Inglés, Español y Chino.

Lire la suite →

Revolucionando as Traduções de Artigos de Blog com IA

Logo

Neste artigo, compartilho um script Python desenvolvido como uma Prova de Conceito (POC) para automatizar a tradução dos posts do meu blog, utilizando o modelo de linguagem GPT-4 da OpenAI. Este script é especificamente projetado para tratar arquivos Markdown na estrutura do meu blog Hugo, facilitando a gestão multilíngue dos meus artigos. Eles estão disponíveis em Inglês, Espanhol e Chinês.

Lire la suite →