راهنمای کامل از نسخه 1.0.0 تا 2.2.2 — قدم به قدم داستان بسازید
git clone https://github.com/miladrezanezhad/story-toolkit.git
cd story-toolkit
pip install -r requirements.txt
# یا نصب مستقیم
pip install -e .from story_toolkit import StoryToolkit
toolkit = StoryToolkit()
story = toolkit.create_story(genre="fantasy", theme="courage")
print(story["metadata"]["genre"]) # "fantasy"
print(story["metadata"]["theme"]) # "courage"hero = toolkit.add_character_to_story(story, "کای", "protagonist")
hero.add_trait("brave")
hero.add_trait("determined")
hero.add_goal("Save the kingdom")
hero.add_skill("sword_mastery")
villain = toolkit.add_character_to_story(story, "اهریمن", "antagonist")
villain.add_trait("cunning")
villain.add_goal("Conquer the realm")
hero.add_relationship("اهریمن", "enemy", strength=9)
print(f"قهرمان: {hero.name}")
print(f"شرور: {villain.name}")dialogue = toolkit.dialogue_gen.generate_dialogue(
"کای", "اهریمن",
context="conflict",
mood="tense"
)
for line in dialogue:
print(line)report = toolkit.check_story_coherence(story)
print(f"امتیاز انسجام: {report['overall_score']:.0%}")pip install story-toolkit[openai] # پشتیبانی از OpenAI
pip install story-toolkit[anthropic] # پشتیبانی از Anthropic
pip install story-toolkit[local] # مدل محلی (Ollama)
pip install story-toolkit[all] # همه پشتیبانهاfrom story_toolkit.llm import LLMFactory, LLMProvider
llm = LLMFactory.create_backend(provider=LLMProvider.MOCK)
toolkit = StoryToolkit(llm_backend=llm)
status = toolkit.get_llm_status()
print(status)styles = ["natural", "dramatic", "poetic", "humorous"]
for style in styles:
dialogue = toolkit.dialogue_gen.generate_dialogue(
"شوالیه", "اژدها",
context="final_battle",
use_advanced=True,
style=style,
num_lines=4
)
print(f"\n--- {style.upper()} ---")
for line in dialogue:
print(line)toolkit = StoryToolkit(memory_backend="sqlite", db_path="stories.db")
story = toolkit.create_story(
genre="fantasy",
theme="courage",
name="داستان حماسی من",
save_to_memory=True
)toolkit.add_event(1, "قهرمان نقشه باستانی را پیدا میکند", "plot", 9)
toolkit.add_event(2, "شرور به روستا حمله میکند", "conflict", 10)
toolkit.add_event(3, "قهرمان با مرشد ملاقات میکند", "character_development", 7)
timeline = toolkit.get_timeline()
for event in timeline:
stars = "⭐" * event.importance + "☆" * (10 - event.importance)
print(f"فصل {event.chapter} [{stars}] {event.description}")pip install story-toolkit[export]
# یا جداگانه:
pip install reportlab # خروجی PDF
pip install ebooklib # خروجی EPUBfrom story_toolkit.exporters import PDFExporter, ExportConfig, PDFStyle
config = ExportConfig(title="افسانه کریستال", author="کای", pdf_style=PDFStyle.PRINT)
exporter = PDFExporter(config)
exporter.export(story, "story_print.pdf")from story_toolkit.exporters import HTMLExporter, HTMLTemplate
config = ExportConfig(title="داستان من", author="من", html_template=HTMLTemplate.MODERN)
exporter = HTMLExporter(config)
exporter.export(story, "story.html")templates = toolkit.list_templates()
for t in templates:
print(f"📋 {t['name']}: {t['stage_count']} مرحله - {t['genre']}")story = toolkit.use_template("hero_journey", genre="fantasy", theme="redemption")
for i, stage in enumerate(story['plot']['main_plot'], 1):
print(f"{i}. {stage['name']}")# ایجاد داستان جدید
story-toolkit story new --genre fantasy --theme courage
# ذخیره داستان در فایل JSON
story-toolkit story new --genre fantasy --theme courage --output my_story.json
# لیست قالبهای آماده
story-toolkit template list
# استفاده از قالب
story-toolkit template use hero_journey
# استفاده از قالب با تم سفارشی
story-toolkit template use three_act --theme redemptionfrom story_toolkit import StoryToolkit
from story_toolkit.llm import LLMFactory, LLMProvider
from story_toolkit.exporters import PDFExporter, ExportConfig, PDFStyle
# 1. ایجاد toolkit با هوش مصنوعی و حافظه (v2.0.0 + v2.1.0)
llm = LLMFactory.create_backend(provider=LLMProvider.MOCK)
toolkit = StoryToolkit(llm_backend=llm, memory_backend="sqlite", db_path="my_stories.db")
# 2. ایجاد داستان با قالب (v2.2.1)
story = toolkit.use_template("hero_journey", genre="fantasy", theme="redemption")
# 3. افزودن شخصیتها (v1.0.0)
hero = toolkit.add_character_to_story(story, "کای", "protagonist")
hero.add_trait("brave")
hero.add_goal("Save the kingdom")
villain = toolkit.add_character_to_story(story, "اهریمن", "antagonist")
# 4. تولید دیالوگ پیشرفته (v2.0.0)
dialogue = toolkit.dialogue_gen.generate_dialogue(
"کای", "اهریمن",
context="final_battle",
use_advanced=True,
style="dramatic",
num_lines=6
)
# 5. افزودن به تایملاین (v2.1.0)
toolkit.add_event(1, "قهرمان نقشه را پیدا میکند", "plot", 9)
toolkit.add_event(2, "شرور به روستا حمله میکند", "conflict", 10)
# 6. بررسی انسجام (v1.0.0)
report = toolkit.check_story_coherence(story)
print(f"امتیاز انسجام: {report['overall_score']:.0%}")
# 7. خروجی PDF (v2.2.0)
config = ExportConfig(title="افسانه کریستال", author="کای", pdf_style=PDFStyle.PRINT)
exporter = PDFExporter(config)
exporter.export(story, "crystal_saga.pdf")
toolkit.close_memory()
print("\n✅ داستان کامل با همه ویژگیها ساخته شد!")pip install --upgrade story-toolkit