← 返回首页
🧠

LLM创意应用:AI创意写作

📂 llm ⏱ 3 min 464 words

--- title: "LLM创意应用:AI创意写作" description: "使用LLM进行创意写作、内容创作和故事生成" tags: ["创意写作", "内容创作", "故事生成", "LLM", "AI创意"] category: "llm" icon: "✨"

LLM创意应用:AI创意写作

创意应用概述

LLM在创意写作领域有广泛应用,可以帮助生成故事、诗歌、剧本和其他创意内容。

核心功能

1. 故事生成器

from openai import OpenAI
from typing import Dict, List, Optional
from dataclasses import dataclass

@dataclass
class StoryConfig:
    """故事配置"""
    genre: str
    setting: str
    characters: List[str]
    themes: List[str]
    length: str  # "short", "medium", "long"

class StoryGenerator:
    """故事生成器"""
    
    def __init__(self, model: str = "gpt-4"):
        self.client = OpenAI()
        self.model = model
    
    def generate_story(self, config: StoryConfig) -> str:
        """生成故事"""
        prompt = f"""请创作一个{config.genre}故事。

背景设定:{config.setting}
主要角色:{', '.join(config.characters)}
主题:{', '.join(config.themes)}
长度:{config.length}

请创作一个引人入胜的故事。"""
        
        response = self.client.chat.completions.create(
            model=self.model,
            messages=[
                {"role": "system", "content": "你是一个专业的创意作家。"},
                {"role": "user", "content": prompt}
            ],
            temperature=0.8
        )
        
        return response.choices[0].message.content
    
    def generate_chapter(self, story_context: str, chapter_number: int) -> str:
        """生成章节"""
        prompt = f"""基于以下故事背景,生成第{chapter_number}章:

故事背景:
{story_context}

请继续故事情节。"""
        
        response = self.client.chat.completions.create(
            model=self.model,
            messages=[
                {"role": "system", "content": "你是一个小说作家。"},
                {"role": "user", "content": prompt}
            ],
            temperature=0.7
        )
        
        return response.choices[0].message.content
    
    def develop_character(self, character_info: Dict) -> str:
        """发展角色"""
        prompt = f"""基于以下信息,发展一个详细的角色:

基本信息:{character_info}

请提供:
1. 详细背景故事
2. 性格特点
3. 动机和目标
4. 人际关系
5. 角色弧线"""
        
        response = self.client.chat.completions.create(
            model=self.model,
            messages=[
                {"role": "system", "content": "你是一个角色发展专家。"},
                {"role": "user", "content": prompt}
            ],
            temperature=0.6
        )
        
        return response.choices[0].message.content

2. 诗歌生成器

class PoetryGenerator:
    """诗歌生成器"""
    
    def __init__(self, model: str = "gpt-4"):
        self.client = OpenAI()
        self.model = model
    
    def generate_poem(self, topic: str, style: str = "自由诗", mood: str = "平静") -> str:
        """生成诗歌"""
        prompt = f"""请创作一首关于"{topic}"的{style}。

风格:{style}
情绪:{mood}

请创作一首优美的诗歌。"""
        
        response = self.client.chat.completions.create(
            model=self.model,
            messages=[
                {"role": "system", "content": "你是一个诗人。"},
                {"role": "user", "content": prompt}
            ],
            temperature=0.9
        )
        
        return response.choices[0].message.content
    
    def generate_haiku(self, topic: str) -> str:
        """生成俳句"""
        prompt = f"""请创作三首关于"{topic}"的俳句。

俳句格式:5-7-5音节

请创作三首不同角度的俳句。"""
        
        response = self.client.chat.completions.create(
            model=self.model,
            messages=[
                {"role": "system", "content": "你是一个俳句大师。"},
                {"role": "user", "content": prompt}
            ],
            temperature=0.8
        )
        
        return response.choices[0].message.content
    
    def analyze_poem(self, poem: str) -> str:
        """分析诗歌"""
        prompt = f"""请分析以下诗歌:

{poem}

请提供:
1. 主题分析
2. 意象解读
3. 修辞手法
4. 情感表达
5. 艺术特色"""
        
        response = self.client.chat.completions.create(
            model=self.model,
            messages=[
                {"role": "system", "content": "你是一个诗歌评论家。"},
                {"role": "user", "content": prompt}
            ],
            temperature=0.4
        )
        
        return response.choices[0].message.content

3. 剧本生成器

class ScriptGenerator:
    """剧本生成器"""
    
    def __init__(self, model: str = "gpt-4"):
        self.client = OpenAI()
        self.model = model
    
    def generate_dialogue(self, characters: List[str], scene: str, mood: str) -> str:
        """生成对话"""
        characters_str = "、".join(characters)
        
        prompt = f"""请为以下场景生成对话:

场景:{scene}
角色:{characters_str}
氛围:{mood}

请生成自然流畅的对话。"""
        
        response = self.client.chat.completions.create(
            model=self.model,
            messages=[
                {"role": "system", "content": "你是一个编剧。"},
                {"role": "user", "content": prompt}
            ],
            temperature=0.7
        )
        
        return response.choices[0].message.content
    
    def generate_scene(self, scene_description: str) -> str:
        """生成场景"""
        prompt = f"""请扩展以下场景描述:

场景描述:{scene_description}

请提供:
1. 详细的场景描写
2. 角色动作
3. 对话
4. 舞台指示"""
        
        response = self.client.chat.completions.create(
            model=self.model,
            messages=[
                {"role": "system", "content": "你是一个剧作家。"},
                {"role": "user", "content": prompt}
            ],
            temperature=0.6
        )
        
        return response.choices[0].message.content

创意工作流

class CreativeWritingWorkflow:
    """创意写作工作流"""
    
    def __init__(self):
        self.story_generator = StoryGenerator()
        self.poetry_generator = PoetryGenerator()
        self.script_generator = ScriptGenerator()
    
    def create_story_project(self, concept: str) -> Dict:
        """创建故事项目"""
        # 1. 发展概念
        concept_prompt = f"基于以下概念,发展一个完整的故事框架:{concept}"
        
        # 2. 创建角色
        characters = [
            {"name": "主角", "role": "protagonist"},
            {"name": "配角", "role": "supporting"}
        ]
        
        # 3. 生成故事
        config = StoryConfig(
            genre="奇幻",
            setting="现代都市与魔法世界",
            characters=["艾丽斯", "鲍勃"],
            themes=["成长", "友谊"],
            length="medium"
        )
        
        story = self.story_generator.generate_story(config)
        
        return {
            "concept": concept,
            "story": story,
            "characters": characters
        }

# 使用示例
workflow = CreativeWritingWorkflow()
project = workflow.create_story_project("一个普通女孩发现自己有魔法能力")

print("故事:")
print(project["story"][:500])

最佳实践

  1. 提供灵感:提供足够的创意灵感
  2. 明确风格:明确写作风格和语气
  3. 迭代改进:根据反馈迭代改进
  4. 保持原创:确保内容的原创性

总结

LLM创意应用可以帮助生成各种创意内容,激发创作灵感。通过合理使用,可以显著提高创作效率。