AlphaEvolve Writing

Vous pouvez trouver l'explication complète ici
Vous pouvez trouver une histoire d'exemple soumise à un concours d'écriture ici
Un système d'écriture moderne et évolutif qui utilise des modèles d'IA pour générer, évaluer et faire évoluer des histoires créatives ou des textes généraux à travers des compétitions itératives. Construit avec une architecture Python propre et modulaire suivant des principes de conception modernes.
✨ Fonctionnalités
- 🧬 Algorithme Évolutionnaire : Les histoires évoluent via des tournois alimentés par l’IA
- 🎯 Modes d’Écriture Doubles : Récits créatifs et optimisation générale de l’écriture
- 🏆 Système de Tournoi ELO : Classement sophistiqué par comparaisons par paires
- 🌐 Interface Web : Validation humaine et outils de comparaison d’histoires
- 🔧 Configurabilité : Personnalisation poussée via une configuration JSON
🚀 Démarrage Rapide
Installation
# Clone the repository
git clone https://github.com/your-org/alphaevolve-writing
cd alphaevolve-writingInstall with uv (recommended)
uv syncOr install with pip
pip install -e .Configure your API keys (see Configuration section below)
Exécuter l'évolution
# Run 5 evolution iterations
python evolve.py 5Fresh start with 3 iterations
python evolve.py 3 --freshUse general writing mode
python evolve.py 5 --generalShow help
python evolve.py --help🏗️ Architecture
Le système suit les principes modernes de conception Python avec une claire séparation des responsabilités :
├── src/
│ ├── core/ # Pipeline orchestration
│ │ └── pipeline.py # Main EvolutionPipeline class
│ ├── generators/ # Story generation logic
│ │ ├── story_generator.py # Initial & next batch generators
│ │ ├── generate_response.py # Creative writing generation
│ │ ├── generate_response_general.py # General writing generation
│ │ └── judge_response.py # AI judging system
│ ├── rankers/ # ELO ranking system
│ │ ├── elo_rank.py # Core ELO algorithm
│ │ └── tournament_runner.py # Tournament management
│ └── utils/ # Utility functions
│ └── inference.py # Multi-provider LLM interface
├── evolve.py # Clean CLI entry point
├── pyproject.toml # Modern Python packaging
├── config.json # Configuration
└── web_interface/ # Web UI for validationComposants Clés
EvolutionPipeline: Chef d'orchestre principal qui gère le cycle complet d'évolutionInitialStoryGenerator: Crée la première génération d'histoires à partir des invitesNextBatchGenerator: Fait évoluer les meilleurs performeurs en variantes amélioréesTournamentRunner: Gère les tournois ELO pour le classement des histoiresEloRankingSystem: Implémente un algorithme sophistiqué de classement
📖 Fonctionnement
Le système suit un cycle d'évolution en trois étapes :
1. Générer la Première Série
- Crée plusieurs histoires à partir de votre invite
- Utilise des modèles d'IA configurables (GPT, Claude, Llama, etc.)
- Assigne des cotes ELO initiales
2. Lancer le Tournoi ELO
- Les histoires s'affrontent par paires
- Des juges IA évaluent selon votre grille d'évaluation
- Les cotes ELO sont mises à jour en fonction des victoires/défaites
3. Générer la Série Suivante
- Sélection des histoires les mieux classées
- Génération de variantes avec améliorations
- Le processus se répète sur plusieurs générations
⚙️ Configuration
Configuration de Base
Modifiez ces fichiers clés :
prompt.txt- Votre invite/thème d'écriturerubric.txt- Critères de jugement pour l'évaluationconfig.json- Configuration du système
Configuration des clés API
Le système prend en charge plusieurs fournisseurs d'IA configurés via config.json. La configuration associe les modèles aux fournisseurs et précise quelles variables d'environnement contiennent les clés API :
{
"llm_providers": {
"openai": {
"type": "openai",
"base_url": "https://api.openai.com/v1",
"api_key_env": "OPENAI_API_KEY"
},
"anthropic": {
"type": "anthropic",
"api_key_env": "ANTHROPIC_API_KEY"
},
"deepinfra": {
"type": "openai_compatible",
"base_url": "https://api.deepinfra.com/v1/openai",
"api_key_env": "DEEPINFRA_API_KEY"
},
"deepseek": {
"type": "openai_compatible",
"base_url": "https://api.deepseek.com/v1",
"api_key_env": "DEEPSEEK_API_KEY"
},
"gemini": {
"type": "openai_compatible",
"api_key_env": "GEMINI_API_KEY",
"base_url": "https://generativelanguage.googleapis.com/v1beta/openai/"
}
},
"model_provider_mapping": {
"gpt-4": "openai",
"gpt-3.5-turbo": "openai",
"claude-3-sonnet-20240229": "anthropic",
"meta-llama/Meta-Llama-3-70B-Instruct": "deepinfra",
"deepseek-chat": "deepseek",
"gemini-2.5-flash": "gemini"
}
}Ensuite, définissez vos clés API en tant que variables d'environnement :
export OPENAI_API_KEY="your-openai-key" # For GPT models
export ANTHROPIC_API_KEY="your-anthropic-key" # For Claude models
export DEEPINFRA_API_KEY="your-deepinfra-key" # For Llama models
export DEEPSEEK_API_KEY="your-deepseek-key" # For DeepSeek models
export GEMINI_API_KEY="your-gemini-key" # For Gemini modelsVous n'avez besoin de définir des clés que pour les fournisseurs que vous prévoyez d'utiliser. Le système dirige automatiquement les requêtes de modèle vers le bon fournisseur en fonction de la configuration.
Options de configuration
Le fichier config.json contrôle tout le comportement du système :
{
"batch_generation": {
"num_stories": 10,
"model": "gpt-4",
"initial_elo": 1500
},
"elo_ranking": {
"tournament_rounds": 50,
"judge_model": "claude-3-sonnet-20240229",
"k_factor": 32
},
"next_batch_generation": {
"top_stories_to_select": 3,
"variants_per_story": 2,
"include_original_stories": true
},
"evolution_pipeline": {
"max_iterations": 5,
"auto_continue_from_existing": true
}
}🎭 Modes d'écriture
Mode d'écriture créative (par défaut)
- Se concentre sur la narration, le développement des personnages et les techniques narratives
- Utilise des stratégies de génération basées sur des missions
- Optimise la créativité et l'engagement
Mode d'écriture général (--general)
- Se concentre sur les articles académiques, essais, rapports et écriture professionnelle
- Utilise des approches analytiques et structurées
- Optimise la clarté et la persuasion
🔧 Configuration avancée
Personnalisation des stratégies de génération
Pour les utilisateurs avancés, vous pouvez personnaliser les invites de génération, les styles d'auteurs et les ensembles de missions en modifiant les fichiers dans le répertoire src/generators/ :
#### Personnalisation de l'écriture créative (src/generators/generate_response.py)
Ensembles de missions - Définir les approches créatives et les objectifs :
mission_sets = {
"emotional_depth": [
"Focus on the psychological depth of characters",
"Explore complex emotional landscapes",
"Create moments of genuine human connection"
],
"narrative_craft": [
"Experiment with unique narrative structures",
"Use vivid, sensory descriptions",
"Create compelling story arcs"
],
"dialogue_mastery": [
"Write authentic, character-specific dialogue",
"Use subtext and implied meaning",
"Balance dialogue with action and description"
]
}Styles d'auteur - Imitez différentes approches d'écriture :
author_styles = [
"Write with the psychological insight of Virginia Woolf",
"Adopt the sparse, powerful prose of Ernest Hemingway",
"Use the magical realism style of Gabriel García Márquez",
"Employ the detailed world-building of Tolkien"
]#### Personnalisation générale de l’écriture (src/generators/generate_response_general.py)
Domaines d’intérêt académique - Cibler des domaines d’écriture spécifiques :
academic_focuses = [
"Rigorous analytical argument development",
"Clear thesis statement and supporting evidence",
"Proper academic citation and source integration",
"Logical flow and coherent structure"
]Approches d'écriture - Définir des stratégies analytiques :
writing_approaches = [
"Comparative analysis with multiple perspectives",
"Problem-solution framework with evidence",
"Cause-and-effect reasoning with examples",
"Critical evaluation with balanced arguments"
]Personnalisation des critères de jugement (src/generators/judge_response.py)
Vous pouvez modifier les critères de jugement et les invites d’évaluation pour vous concentrer sur des aspects spécifiques de la qualité rédactionnelle :
# Edit the judge_responses function to customize evaluation criteria
evaluation_criteria = [
"Technical writing proficiency",
"Creative originality and innovation",
"Emotional impact and reader engagement",
"Structural coherence and flow",
"Character development and authenticity"
]Conseils pour une Configuration Avancée
- Sauvegardez les Fichiers Originaux : Gardez toujours des copies des fichiers générateurs originaux avant de faire des modifications
- Testez par Incréments : Faites de petits changements et testez avec quelques itérations avant de lancer des cycles d’évolution complets
- Surveillez les Résultats : Utilisez l’interface web pour valider que vos personnalisations améliorent la qualité des histoires
- Combinez et Associez : Combinez différents ensembles de missions et styles d’auteurs pour des stratégies de génération uniques
- Contrôle de Version : Suivez vos personnalisations avec git pour pouvoir revenir en arrière si nécessaire
🌐 Interface Web
Validez vos résultats d’évolution avec l’interface web intégrée :
cd web_interface
pip install -r requirements.txt
python app.pyOuvrez http://localhost:5000 pour accéder à :
- Comparaison d'histoires : Lecture côte à côte et sélection de préférence
- Classements ELO : Voir les classements et statistiques actuels
- Suivi de l'évolution : Valider que les générations suivantes s'améliorent
- Exportation des données : Télécharger les résultats pour analyse
--- Tranlated By Open Ai Tx | Last indexed: 2026-01-09 ---