LLM创意应用:AI创意写作
--- 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])
最佳实践
- 提供灵感:提供足够的创意灵感
- 明确风格:明确写作风格和语气
- 迭代改进:根据反馈迭代改进
- 保持原创:确保内容的原创性
总结
LLM创意应用可以帮助生成各种创意内容,激发创作灵感。通过合理使用,可以显著提高创作效率。