IA
2025
Déploiement Automatisé de LibreChat sur AWS EC2 : Une Solution DevOps Innovante et Accessible
Je suis ravi de vous présenter mon dernier projet : le déploiement entièrement automatisé de LibreChat sur AWS EC2, une solution open-source disponible sur GitLab. Ce projet illustre mon savoir-faire en DevOps et cloud engineering, en s’appuyant sur Terraform pour une infrastructure as code (IaC), un script User-Data en Bash, une pipeline GitLab CI/CD, et une gestion centralisée via AWS Systems Manager (SSM). Résultat : une instance LibreChat opérationnelle en moins de 6 minutes, avec des coûts optimisés, une sécurité renforcée et une accessibilité maximale.
Ce projet va au-delà d’un simple déploiement technique : il incarne une vision d’automatisation avancée, pensée pour les experts comme pour les débutants. Voici comment j’ai conçu cette solution.
Mise à jour : LibreChat version v0.7.6 avec déploiement automatisé sur AWS EC2
Je suis heureux d’annoncer que mon projet de déploiement automatisé de LibreChat sur AWS EC2 a été mis à jour pour corriger des problèmes liés aux changements récents dans la manière d’installer LibreChat, tout en supportant désormais la version v0.7.6. Cette mise à jour inclut également la possibilité de choisir entre les instances On-Demand et Spot, ainsi que des améliorations pour simplifier l’utilisation, même pour les débutants.
Atualização: LibreChat versão v0.7.6 com implantação automatizada no AWS EC2
Estou feliz em anunciar que meu projeto de implantação automatizada do LibreChat no AWS EC2 foi atualizado para corrigir problemas relacionados às mudanças recentes na forma de instalar o LibreChat, além de agora suportar a versão v0.7.6. Esta atualização também inclui a possibilidade de escolher entre instâncias On-Demand e Spot, bem como melhorias para simplificar o uso, mesmo para iniciantes.
Aggiornamento: LibreChat versione v0.7.6 con deployment automatizzato su AWS EC2
Sono lieto di annunciare che il mio progetto di deployment automatizzato di LibreChat su AWS EC2 è stato aggiornato per correggere problemi legati ai recenti cambiamenti nel modo di installare LibreChat, supportando ora la versione v0.7.6. Questo aggiornamento include anche la possibilità di scegliere tra istanze On-Demand e Spot, oltre a miglioramenti per semplificarne l’utilizzo, anche per i principianti.
Actualizare: LibreChat versiunea v0.7.6 cu implementare automată pe AWS EC2
Sunt bucuros să anunț că proiectul meu de implementare automată a LibreChat pe AWS EC2 a fost actualizat pentru a rezolva problemele legate de schimbările recente în modul de instalare a LibreChat, suportând acum versiunea v0.7.6. Această actualizare include, de asemenea, posibilitatea de a alege între instanțe On-Demand și Spot, precum și îmbunătățiri pentru a simplifica utilizarea, chiar și pentru începători.
Actualización: LibreChat versión v0.7.6 con despliegue automatizado en AWS EC2
Estoy feliz de anunciar que mi proyecto de despliegue automatizado de LibreChat en AWS EC2 ha sido actualizado para corregir problemas relacionados con los cambios recientes en la forma de instalar LibreChat, y ahora soporta la versión v0.7.6. Esta actualización incluye también la posibilidad de elegir entre instancias On-Demand y Spot, así como mejoras para simplificar su uso, incluso para principiantes.
2024
ブログにGPT-4oによる新しいAI翻訳が続々登場!
私のブログがさらに多くの言語に対応して、世界中の読者に届けられるようになったことをお知らせできることを大変嬉しく思います!この度、自動翻訳に対応した8つの新しい言語が追加されました。新たに利用可能な言語は以下の通りです:
- イタリア語: Tradotto da IA in Italiano
- ドイツ語: KI-Übersetzung auf Deutsch
- スウェーデン語: AI-översatt svenska
- ポーランド語: Tłumaczenie AI na język polski
- オランダ語: AI-vertaald Nederlands
- ルーマニア語: Tradus de IA în Română
- 日本語: AI翻訳日本語
- 韓国語: AI 번역 한국어
المزيد من الترجمات الجديدة بواسطة الذكاء الاصطناعي مع GPT-4o متاحة الآن على المدونة!
يسعدني أن أعلن أن مدونتي أصبحت تنفتح أكثر على العالم مع إضافة ثمان لغات جديدة لترجمات المقالات التلقائية! اللغات الجديدة المتاحة هي:
- الإيطالية: Tradotto da IA in Italiano
- الألمانية: KI-Übersetzung auf Deutsch
- السويدية: AI-översatt svenska
- البولندية: Tłumaczenie AI na język polski
- الهولندية: AI-vertaald Nederlands
- الرومانية: Tradus de IA în Română
- اليابانية: AI翻訳日本語
- الكورية: AI 번역 한국어
Nog meer nieuwe AI-vertalingen met GPT-4o beschikbaar op de blog!
Ik ben verheugd u aan te kondigen dat mijn blog zich nog meer opent voor de wereld met de toevoeging van acht nieuwe talen voor automatische vertalingen van mijn artikelen! De nieuwe beschikbare talen zijn:
- Italiaans: Tradotto da IA in Italiano
- Duits: KI-Übersetzung auf Deutsch
- Zweeds: AI-översatt svenska
- Pools: Tłumaczenie AI na język polski
- Nederlands: AI-vertaald Nederlands
- Roemeens: Tradus de IA în Română
- Japans: AI翻訳日本語
- Koreaans: AI 번역 한국어
Mais novas traduções de IA com GPT-4o disponíveis no blog!
Estou feliz em anunciar que meu blog está se abrindo ainda mais para o mundo com a adição de oito novos idiomas para traduções automáticas dos meus artigos! Os novos idiomas disponíveis são:
- Italiano: Tradotto da IA in Italiano
- Alemão: KI-Übersetzung auf Deutsch
- Sueco: AI-översatt svenska
- Polonês: Tłumaczenie AI na język polski
- Holandês: AI-vertaald Nederlands
- Romeno: Tradus de IA în Română
- Japonês: AI翻訳日本語
- Coreano: AI 번역 한국어
Încă mai multe traduceri IA cu GPT-4o disponibile pe blog!
Sunt încântat să vă anunț că blogul meu se deschide și mai mult spre lume cu adăugarea a opt noi limbi pentru traducerile automate ale articolelor mele! Limbile noi disponibile sunt:
- Italiană : Tradotto da IA in Italiano
- Germană : KI-Übersetzung auf Deutsch
- Suedeză : AI-översatt svenska
- Poloneză : Tłumaczenie AI na język polski
- Neerlandeză : AI-vertaald Nederlands
- Română : Tradus de IA în Română
- Japoneză : AI翻訳日本語
- Coreeană : AI 번역 한국어
GPT-4o를 사용한 더 많은 새로운 AI 번역이 블로그에서 제공됩니다!
내 블로그가 기사 자동 번역을 위한 여덟 개의 새로운 언어 추가와 함께 더 많은 세계로 열리게 되어 기쁩니다! 사용할 수 있는 새로운 언어는 다음과 같습니다:
- 이탈리아어 : Tradotto da IA in Italiano
- 독일어 : KI-Übersetzung auf Deutsch
- 스웨덴어 : AI-översatt svenska
- 폴란드어 : Tłumaczenie AI na język polski
- 네덜란드어 : AI-vertaald Nederlands
- 루마니아어 : Tradus de IA în Română
- 일본어 : AI翻訳日本語
- 한국어 : AI 번역 한국어
Encore de nouvelles traductions IA avec GPT-4o disponibles sur le blog !
Je suis ravi de vous annoncer que mon blog s’ouvre encore plus au monde avec l’ajout de huit nouvelles langues pour les traductions automatiques de mes articles ! Les nouvelles langues disponibles sont :
- Italien : Tradotto da IA in Italiano
- Allemand : KI-Übersetzung auf Deutsch
- Suédois : AI-översatt svenska
- Polonais : Tłumaczenie AI na język polski
- Néerlandais : AI-vertaald Nederlands
- Roumain : Tradus de IA în Română
- Japonais : AI翻訳日本語
- Coréen : AI 번역 한국어
Ancora nuove traduzioni AI con GPT-4o disponibili sul blog!
Sono lieto di annunciare che il mio blog si apre ancora di più al mondo con l’aggiunta di otto nuove lingue per le traduzioni automatiche dei miei articoli! Le nuove lingue disponibili sono:
- Italiano : Tradotto da IA in Italiano
- Tedesco : KI-Übersetzung auf Deutsch
- Svedese : AI-översatt svenska
- Polacco : Tłumaczenie AI na język polski
- Olandese : AI-vertaald Nederlands
- Rumeno : Tradus de IA în Română
- Giapponese : AI翻訳日本語
- Coreano : AI 번역 한국어
¡Más traducciones de IA con GPT-4o disponibles en el blog!
Me complace anunciar que mi blog se abre aún más al mundo con la adición de ocho nuevos idiomas para las traducciones automáticas de mis artículos! Los nuevos idiomas disponibles son:
- Italiano: Tradotto da IA in Italiano
- Alemán: KI-Übersetzung auf Deutsch
- Sueco: AI-översatt svenska
- Polaco: Tłumaczenie AI na język polski
- Neerlandés: AI-vertaald Nederlands
- Rumano: Tradus de IA în Română
- Japonés: AI翻訳日本語
- Coreano: AI 번역 한국어
الترجمات الجديدة بواسطة الذكاء الاصطناعي باستخدام GPT-4o متوفرة الآن على المدونة!
يسعدني أن أعلن أن مقالات مدونتي أصبحت متاحة الآن بعدة لغات بفضل قدرات الترجمة بواسطة الذكاء الاصطناعي!
المقالات الأصلية، المكتوبة بالفرنسية، تُرجمت تلقائيًا الآن إلى:
- الإنجليزية : AI-Translated English
- الإسبانية : Español Traducida por IA
- البرتغالية : Português Traduzido por IA
- الصينية : 人工智能翻译英文
- الهندية : AI Anuvadit Hindi
- العربية : Tarjama Al-Zakaa Al-Sinai
Traduceri IA noi cu GPT-4o disponibile pe blog!
Sunt fericit să vă anunț că postările de pe blogul meu sunt acum disponibile în mai multe limbi datorită capacităților de traducere ale inteligenței artificiale!
Articolele originale, scrise în franceză, sunt acum traduse automat în:
- Engleză : AI-Translated English
- Spaniolă : Español Traducida por IA
- Portugheză : Português Traduzido por IA
- Chineză : 人工智能翻译英文
- Hindi : AI Anuvadit Hindi
- Arabă : Tarjama Al-Zakaa Al-Sinai
Nuove traduzioni IA con GPT-4o disponibili sul blog!
Sono felice di annunciare che i post del mio blog sono ora disponibili in diverse lingue grazie alle capacità di traduzione dell’intelligenza artificiale!
Gli articoli originali, scritti in francese, sono ora automaticamente tradotti in:
- Inglese : AI-Translated English
- Spagnolo : Español Traducida por IA
- Portoghese : Português Traduzido por IA
- Cinese : 人工智能翻译英文
- Hindi : AI Anuvadit Hindi
- Arabo : Tarjama Al-Zakaa Al-Sinai
Nuevas traducciones IA con GPT-4o disponibles en el blog!
¡Me complace anunciar que las publicaciones de mi blog ahora están disponibles en varios idiomas gracias a las capacidades de traducción de la inteligencia artificial!
Los artículos originales, escritos en francés, ahora se traducen automáticamente en:
- Inglés: AI-Translated English
- Español: Español Traducida por IA
- Portugués: Português Traduzido por IA
- Chino: 人工智能翻译英文
- Hindi: AI Anuvadit Hindi
- Árabe: Tarjama Al-Zakaa Al-Sinai
Nowe tłumaczenia AI z GPT-4o dostępne na blogu!
Cieszę się, mogąc ogłosić, że wpisy na moim blogu są teraz dostępne w kilku językach dzięki możliwościom tłumaczenia sztucznej inteligencji!
Oryginalne artykuły, napisane po francusku, są teraz automatycznie tłumaczone na:
- Angielski: AI-Translated English
- Hiszpański: Español Traducida por IA
- Portugalski: Português Traduzido por IA
- Chiński: 人工智能翻译英文
- Hindi: AI Anuvadit Hindi
- Arabski: Tarjama Al-Zakaa Al-Sinai
Novas traduções IA com GPT-4o disponíveis no blog!
Estou feliz em anunciar que as postagens do meu blog agora estão disponíveis em vários idiomas graças às capacidades de tradução da inteligência artificial!
Os artigos originais, escritos em francês, agora são automaticamente traduzidos para:
- Inglês : AI-Translated English
- Espanhol : Español Traducida por IA
- Português : Português Traduzido por IA
- Chinês : 人工智能翻译英文
- Hindi : AI Anuvadit Hindi
- Árabe : Tarjama Al-Zakaa Al-Sinai
Nouvelles traductions IA avec GPT-4o disponibles sur le blog !
Je suis heureux de vous annoncer que les billets de mon blog sont désormais disponibles en plusieurs langues grâce aux capacités de traduction de l’intelligence artificielle !
Les articles originaux, écrits en français, sont maintenant automatiquement traduits en :
- Anglais : AI-Translated English
- Espagnol : Español Traducida por IA
- Portugais : Português Traduzido por IA
- Chinois : 人工智能翻译英文
- Hindi : AI Anuvadit Hindi
- Arabe : Tarjama Al-Zakaa Al-Sinai
GPT-4o के साथ नई AI अनुवाद ब्लॉग पर उपलब्ध!
मैं आपको यह बताते हुए खुशी हो रही है कि मेरे ब्लॉग की पोस्ट अब कई भाषाओं में उपलब्ध हैं, जो कृत्रिम बुद्धिमत्ता की अनुवाद क्षमताओं के लिए धन्यवाद है!
मूल लेख, जो फ्रेंच में लिखे गए थे, अब स्वचालित रूप से अनूदित किए गए हैं:
- अंग्रेजी : AI-Translated English
- स्पैनिश : Español Traducida por IA
- पुर्तगाली : Português Traduzido por IA
- चीनी : 人工智能翻译英文
- हिंदी : AI Anuvadit Hindi
- अरबी : Tarjama Al-Zakaa Al-Sinai
Mise à Jour du Script de Traduction Automatique : Version 1.5
Je suis heureux d’annoncer la sortie de la version 1.5 de mon script AI-Powered Markdown Translator. Cette mise à jour apporte plusieurs améliorations significatives, notamment la mise à jour des modèles par défaut, l’optimisation des prompts de traduction, une refactorisation du code et une meilleure gestion des fichiers de sortie.
Atualização do Script de Tradução Automática: Versão 1.5
Estou feliz em anunciar o lançamento da versão 1.5 do meu script AI-Powered Markdown Translator. Esta atualização traz várias melhorias significativas, incluindo a atualização dos modelos padrão, a otimização dos prompts de tradução, uma refatoração do código e uma melhor gestão dos arquivos de saída.
Aktualizacja Skryptu do Automatycznego Tłumaczenia: Wersja 1.5
Z przyjemnością ogłaszam wydanie wersji 1.5 mojego skryptu AI-Powered Markdown Translator. Ta aktualizacja przynosi kilka znaczących usprawnień, w tym aktualizację domyślnych modeli, optymalizację promptów tłumaczeniowych, refaktoryzację kodu i lepsze zarządzanie plikami wyjściowymi.
Aggiornamento dello Script di Traduzione Automatica: Versione 1.5
Sono felice di annunciare il rilascio della versione 1.5 del mio script AI-Powered Markdown Translator. Questo aggiornamento apporta diverse migliorie significative, tra cui l’aggiornamento dei modelli predefiniti, l’ottimizzazione dei prompt di traduzione, una rifattorizzazione del codice e una migliore gestione dei file di output.
Actualizare a Scriptului de Traducere Automată: Versiunea 1.5
Sunt fericit să anunț lansarea versiunii 1.5 a scriptului meu AI-Powered Markdown Translator. Această actualizare aduce mai multe îmbunătățiri semnificative, inclusiv actualizarea modelelor implicite, optimizarea prompturilor de traducere, refactorizarea codului și o mai bună gestionare a fișierelor de ieșire.
Actualización del Script de Traducción Automática: Versión 1.5
Me complace anunciar el lanzamiento de la versión 1.5 de mi script AI-Powered Markdown Translator. Esta actualización trae varias mejoras significativas, incluyendo la actualización de los modelos predeterminados, la optimización de los prompts de traducción, una refactorización del código y una mejor gestión de los archivos de salida.
Zautomatyzowane wdrażanie LibreChat na EC2 AWS
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.
Geautomatiseerde implementatie van LibreChat op EC2 AWS
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.
Distribuzione automatizzata di LibreChat su EC2 AWS
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.
Despliegue automatizado de LibreChat en EC2 AWS
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.
Desdobramento automatizado do LibreChat na EC2 AWS
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.
Déploiement automatisé de LibreChat sur EC2 AWS
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.
Deplasare automatizată a LibreChat pe EC2 AWS
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.
Automatiserad distribution av LibreChat på EC2 AWS
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.
Evoluzione dello Script di Traduzione Automatica: Integrazione di Claude di Anthropic
Lo script di traduzione automatica, già potenziato dalle capacità di OpenAI e Mistral AI, accoglie una nuova innovazione: l’integrazione di Claude, il modello di intelligenza artificiale di ultima generazione progettato da Anthropic. Per scoprire i risultati in tutte le lingue, vi invito a visitare questa pagina: Traductions avec Anthropic.
Évolution du Script de Traduction Automatique : Intégration de Claude d'Anthropic
Le script de traduction automatique, déjà renforcé par les capacités d’OpenAI et de Mistral AI, accueille une nouvelle innovation : l’intégration de Claude, le modèle d’intelligence artificielle de dernière génération conçu par Anthropic. Pour découvrir les résultats dans toutes les langues, je vous invite à visiter cette page : Traductions avec Anthropic.
Evoluția Scriptului de Traducere Automată: Integrarea Claude de la Anthropic
Scriptul de traducere automată, deja întărit de capacitățile OpenAI și Mistral AI, primește o nouă inovație: integrarea Claude, modelul de inteligență artificială de ultimă generație conceput de Anthropic. Pentru a descoperi rezultatele în toate limbile, vă invit să vizitați această pagină: Traduceri cu Anthropic.
Evolución del Script de Traducción Automática: Integración de Claude de Anthropic
El script de traducción automática, ya reforzado por las capacidades de OpenAI y de Mistral AI, acoge una nueva innovación: la integración de Claude, el modelo de inteligencia artificial de última generación diseñado por Anthropic. Para descubrir los resultados en todos los idiomas, les invito a visitar esta página: Traducciones con Anthropic.
Evolución del Script de Traducción Automática: Integración de Claude de Anthropic
El script de traducción automática, ya reforzado por las capacidades de OpenAI y de Mistral AI, acoge una nueva innovación: la integración de Claude, el modelo de inteligencia artificial de última generación diseñado por Anthropic. Para descubrir los resultados en todos los idiomas, lo invito a visitar esta página: Traducciones con Anthropic.
Evolução do Script de Tradução Automática: Integração de Claude da Anthropic
O script de tradução automática, já reforçado pelas capacidades da OpenAI e da Mistral AI, acolhe uma nova inovação: a integração de Claude, o modelo de inteligência artificial de última geração concebido pela Anthropic. Para descobrir os resultados em todas as línguas, convido você a visitar esta página: Traduções com Anthropic.
博客翻译脚本的演进:整合 Mistral AI
在本文中,我将与您分享使用人工智能的博客翻译脚本的演进,并整合了 Mistral AI 技术。要在所有语言中查看结果,请访问此页面:使用 Mistral AI 进行翻译。
为什么要这个脚本?
我的翻译脚本的目标是使我的博客文章能够在多种语言中获得,通过自动化其翻译。想象一下一个智能翻译器,能够阅读法语文章并忠实地将其还原为英语、西班牙语或其他语言,同时保留原始格式。这就是我的脚本所做的,它利用了最新的人工智能进步。
初始脚本的主要功能
- 自动翻译:使用 OpenAI 或 Mistral AI API 进行精确翻译。
- 保留格式:脚本保留了原始格式,包括代码块和链接。
- 多语言:能够翻译成多种语言。
- 支持 Markdown:适用于常用于博客中的 Markdown 文件。
- 自动化:通过单个命令翻译多篇文章。
整合 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()
请继续关注更多关于人工智能有趣世界的更新和创新!
मेरे ब्लॉग अनुवाद स्क्रिप्ट का विकास: मिस्त्रल एआई का एकीकरण
इस लेख में, मैं कृत्रिम बुद्धिमत्ता का उपयोग करके अपने ब्लॉग अनुवाद स्क्रिप्ट के विकास के बारे में बात करूंगा, जिसमें मिस्त्रल एआई तकनीक का एकीकरण शामिल है। सभी भाषाओं में परिणाम देखने के लिए, कृपया इस पृष्ठ पर जाएं: मिस्त्रल एआई के साथ अनुवाद।
Utveckling av mitt Bloggöversättningsscript: Integrering av Mistral AI
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.
Ewolucja mojego Skryptu Tłumaczenia Bloga: Integracja z Mistral AI
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.
Evoluzione del mio Script di Traduzione del Blog: Integrazione di Mistral AI
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.
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.
Évolution de mon Script de Traduction de Blog : Intégration de Mistral AI
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.
Evolutie van mijn Blog Vertalingsscript: Integratie van Mistral AI
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.
Evoluția Scriptului meu de Traducere a Blogului: Integrarea Mistral AI
Î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.
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.
Evolución de mi Script de Traducción de Blog: Integración de Mistral AI
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.
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.
Evolução do Meu Script de Tradução de Blog: Integração do Mistral AI
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.
एआई के साथ ब्लॉग लेखों के अनुवाद में क्रांति
इस लेख में, मैं एक पीओसी (प्रूफ़ ऑफ़ कॉन्सेप्ट) के रूप में एक पाइथन स्क्रिप्ट साझा कर रहा हूँ, जो ओपनएआई के GPT-4 भाषा मॉडल का उपयोग करके मेरे ब्लॉग पोस्टों के अनुवाद को स्वचालित करने के लिए विकसित की गई है। यह स्क्रिप्ट विशेष रूप से मेरे ह्यूगो ब्लॉग की संरचना में मार्कडाउन फाइलों को प्रोसेस करने के लिए डिज़ाइन की गई है, जिससे मेरे लेखों की बहुभाषी प्रबंधन में सुविधा हो। वे अंग्रेजी, स्पेनिश और चीनी में उपलब्ध हैं।
Rivoluzionare le Traduzioni degli Articoli del Blog con l'IA
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.
Révolutionner les Traductions d'articles de Blog avec l'IA
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.
Revoluționați Traducerile Articolelor de Blog cu IA
Î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ă.
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.
Revolucionar las Traducciones de Artículos de Blog con la IA
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.
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.
Revolucionando as Traduções de Artigos de Blog com IA
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.