Mistral AI

2024

النشر الآلي لـ LibreChat على EC2 AWS

Logo

يقدم هذا المقال مشروع POC (دليل إثبات المفهوم) للنشر الآلي لـ LibreChat على AWS EC2، باستخدام Terraform لتنسيق البنية التحتية وفقًا لمبدأ البنية التحتية كرمز، وبرنامج User-Data Bash لتثبيت المكونات على EC2، وAWS Systems Manager لإدارة مركزية لمفاتيح API وتتبع النشر. يتم التركيز على الأتمتة وتحسين التكاليف من خلال استخدام حالات Spot.

Lire la suite →

Zautomatyzowane wdrażanie LibreChat na EC2 AWS

Logo

Ten artykuł przedstawia projekt POC (Proof of Concept) dla zautomatyzowanego wdrażania LibreChat na AWS EC2, używając Terraform do orkiestracji infrastruktury zgodnie z zasadą Infrastructure as Code, skryptu User-Data Bash do instalacji komponentów na EC2 i AWS Systems Manager do centralnego zarządzania kluczami API i monitorowania wdrożenia. Skupiono się na automatyzacji i optymalizacji kosztów poprzez wykorzystanie instancji Spot.

Lire la suite →

LibreChat在AWS EC2上的自动部署

Logo

这篇文章介绍了一个 项目 POC(概念验证),目的是在AWS EC2上自动部署LibreChat,使用Terraform根据Infrastructure as Code的原则来编排基础设施,使用bash编写的User-Data脚本来安装EC2组件,并使用AWS Systems Manager进行API密钥的集中管理和部署跟踪。重点放在通过使用Spot实例来实现自动化和成本优化。

Lire la suite →

Geautomatiseerde implementatie van LibreChat op EC2 AWS

Logo

Dit artikel presenteert een project POC (Proof of Concept) voor de geautomatiseerde implementatie van LibreChat op AWS EC2, met behulp van Terraform om de infrastructuur te orkestreren volgens het principe van Infrastructure as Code, een User-Data Bash-script om de componenten op EC2 te installeren en AWS Systems Manager om centraal API-sleutels te beheren en de implementatie te volgen. De nadruk ligt op automatisering en kostenoptimalisatie door gebruik te maken van Spot-instances.

Lire la suite →

EC2 AWS에 LibreChat 자동 배포

Logo

이 기사는 프로젝트 POC (Proof of Concept)을 EC2에서 LibreChat을 Terraform을 사용하여 인프라를 코드로서 오케스트레이션하고, User-Data Bash 스크립트를 사용하여 EC2에 컴포넌트를 설치하며, AWS Systems Manager를 사용하여 중앙 집중적으로 API 키를 관리하고 배포 진행 상황을 추적하는 방법을 소개합니다. 비용 최적화를 위해 Spot 인스턴스 사용에도 중점을 둡니다.

Lire la suite →

Distribuzione automatizzata di LibreChat su EC2 AWS

Logo

Questo articolo presenta un progetto POC (Proof of Concept) per la distribuzione automatizzata di LibreChat su AWS EC2, utilizzando Terraform per orchestrare l’infrastruttura secondo il principio di Infrastructure as Code, uno script User-Data Bash per installare i componenti su EC2, e AWS Systems Manager per una gestione centralizzata delle chiavi API e il monitoraggio della distribuzione. L’accento è posto sull’automazione e l’ottimizzazione dei costi tramite l’uso delle istanze Spot.

Lire la suite →

Despliegue automatizado de LibreChat en EC2 AWS

Logo

Este artículo presenta un proyecto POC (Proof of Concept) para el despliegue automatizado de LibreChat en AWS EC2, utilizando Terraform para orquestar la infraestructura según el principio de Infraestructura como Código, un script de User-Data en Bash para instalar los componentes en EC2, y AWS Systems Manager para una gestión centralizada de las claves API y el seguimiento del despliegue. El enfoque está en la automatización y la optimización de costos a través del uso de instancias Spot.

Lire la suite →

Desdobramento automatizado do LibreChat na EC2 AWS

Logo

Este artigo apresenta um projeto POC (Proof of Concept) para o desdobramento automatizado do LibreChat na AWS EC2, usando Terraform para orquestrar a infraestrutura de acordo com o princípio de Infraestrutura como Código, um script de Bash User-Data para instalar os componentes na EC2, e AWS Systems Manager para gerenciamento centralizado das chaves de API e acompanhamento do desdobramento. A ênfase está na automação e otimização de custos através do uso de instâncias Spot.

Lire la suite →

Déploiement automatisé de LibreChat sur EC2 AWS

Logo

Cet article présente un projet POC (Proof of Concept) pour le déploiement automatisé de LibreChat sur AWS EC2, utilisant Terraform pour orchestrer l’infrastructure selon le principe d’Infrastructure as Code, un script User-Data Bash pour installer les composants sur EC2, et AWS Systems Manager pour une gestion centralisée des clés API et le suivi du déploiement. L’accent est mis sur l’automatisation et l’optimisation des coûts via l’utilisation des instances Spot.

Lire la suite →

Deplasare automatizată a LibreChat pe EC2 AWS

Logo

Acest articol prezintă un proiect POC (Proof of Concept) pentru deplasarea automatizată a LibreChat pe AWS EC2, utilizând Terraform pentru orchestrarea infrastructurii conform principiului Infrastructure as Code, un script User-Data Bash pentru a instala componentele pe EC2, și AWS Systems Manager pentru o gestionare centralizată a cheilor API și urmărirea desfășurării. Se pune accent pe automatizare și optimizarea costurilor prin utilizarea instanțelor Spot.

Lire la suite →

AWS EC2におけるLibreChatの自動デプロイ

Logo

この記事は、インフラストラクチャをコードとして定義するTerraformを利用し、EC2上にLibreChatを自動デプロイするためのPOCプロジェクトを紹介します。EC2にコンポーネントをインストールするためのBashスクリプトUser-Dataを使用し、APIキーの集中管理およびデプロイの追跡にはAWS Systems Managerを使用しています。スポットインスタンスの使用を通じて、自動化とコストの最適化に重点を置いています。

Lire la suite →

Automatiserad distribution av LibreChat på EC2 AWS

Logo

Denna artikel presenterar ett projekt POC (Proof of Concept) för den automatiserade distributionen av LibreChat på AWS EC2, med Terraform för att orkestrera infrastrukturen enligt principen Infrastructure as Code, ett User-Data Bash-skript för att installera komponenter på EC2, och AWS Systems Manager för centraliserad hantering av API-nycklar och uppföljning av distributionen. Fokus ligger på automatisering och kostnadsoptimering genom användning av Spot-instanser.

Lire la suite →

Automatische Bereitstellung von LibreChat auf AWS EC2

Logo

Dieser Artikel stellt ein POC-Projekt (Proof of Concept) für die automatische Bereitstellung von LibreChat auf AWS EC2 vor, das Terraform zur Orchestrierung der Infrastruktur nach dem Prinzip Infrastructure as Code, ein User-Data-Bash-Skript zur Installation der Komponenten auf EC2 und AWS Systems Manager zur zentralen Verwaltung von API-Schlüsseln und zur Überwachung der Bereitstellung verwendet. Der Schwerpunkt liegt auf der Automatisierung und Kostenoptimierung durch die Nutzung von Spot-Instanzen.

Lire la suite →

Automated Deployment of LibreChat on AWS EC2

Logo

This article presents a POC (Proof of Concept) project for the automated deployment of LibreChat on AWS EC2, using Terraform to orchestrate the infrastructure according to the Infrastructure as Code principle, a Bash User-Data script to install components on EC2, and AWS Systems Manager for centralized API key management and deployment tracking. The focus is on automation and cost optimization through the use of Spot instances.

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 →

使用 Mistral AI API 的另一种 Python 实践方法

在 OpenAI 之后,对 Mistral AI 进行了 POC!

Lire la suite →

一种使用 Mistral AI API 的 Python 实践新方法

继 OpenAI 之后,对法国竞争对手 Mistral AI 的 POC!

Lire la suite →

파이썬에서 Mistral AI API를 사용한 또 다른 실용적인 접근법

OpenAI 다음으로 프랑스의 경쟁자인 Mistral AI를 활용한 POC!

Lire la suite →

نهج عملي آخر في بايثون ولكن مع API ميسترل AI

بعد OpenAI، إثبات مفهوم مع Mistral AI المنافس الفرنسي!

Lire la suite →

Une autre approche pratique en Python mais avec l'API de Mistral AI

Après OpenAI, POC sur Mistral AI le concurrent français !

Lire la suite →

Un altro approccio pratico in Python ma con l'API di Mistral AI

Dopo OpenAI, POC su Mistral AI il concorrente francese!

Lire la suite →

Uma outra abordagem prática em Python, mas com a API de Mistral AI

Após OpenAI, POC sobre Mistral AI, o concorrente francês!

Lire la suite →

Python中使用Mistral AI API的另一种实用方法

继OpenAI之后,在法国竞争对手Mistral AI上进行POC!

Lire la suite →

Pythonでの別の実践的アプローチ - Mistral AI APIを使う

OpenAIの後、フランスの競合相手であるMistral AIのPOC!

Lire la suite →

Python में एक और प्रैक्टिकल एप्रोच लेकिन Mistral AI के API के साथ

OpenAI के बाद, फ्रांसीसी प्रतियोगी Mistral AI पर POC!

Lire la suite →

Otro enfoque práctico en Python pero con la API de Mistral AI

¡Después de OpenAI, POC sobre Mistral AI el competidor francés!

Lire la suite →

Otro enfoque práctico en Python pero con la API de Mistral AI

¡Después de OpenAI, POC sobre Mistral AI, el competidor francés!

Lire la suite →

Otra aproximación práctica en Python pero con la API de Mistral AI

Después de OpenAI, POC en Mistral AI, el competidor francés!

Lire la suite →

O altă abordare practică în Python, dar cu API-ul Mistral AI

După OpenAI, POC pe Mistral AI, concurentul francez!

Lire la suite →

Inne praktyczne podejście w Pythonie, ale z API Mistral AI

Po OpenAI, POC na Mistral AI, francuskim konkurencie!

Lire la suite →

Ett annat praktiskt tillvägagångssätt i Python men med Mistral AI API

Efter OpenAI, proof of concept för Mistral AI, den franska konkurrenten!

Lire la suite →

Ein anderer praktischer Ansatz in Python, aber mit der Mistral AI API

Nach OpenAI, Proof of Concept über Mistral AI, den französischen Konkurrenten!

Lire la suite →

Een andere praktische benadering in Python maar met de API van Mistral AI

Na OpenAI, POC op Mistral AI, de Franse concurrent!

Lire la suite →

Another Practical Approach in Python but with the Mistral AI API

After OpenAI, POC on Mistral AI the French competitor!

Lire la suite →

Another practical approach in Python but with the Mistral AI API

After OpenAI, POC on Mistral AI the French competitor!

Lire la suite →

Another practical approach in Python but with the Mistral AI API

After OpenAI, POC on Mistral AI the French competitor!

Lire la suite →