-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Expand file tree
/
Copy pathmultilingual-content.py
More file actions
161 lines (141 loc) · 4.62 KB
/
multilingual-content.py
File metadata and controls
161 lines (141 loc) · 4.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
from praisonaiagents import Agent, Task, PraisonAIAgents
import time
from typing import Dict, List
def generate_base_content():
"""Simulates base content generation"""
content_types = [
{"type": "marketing", "tone": "professional", "length": "medium"},
{"type": "technical", "tone": "formal", "length": "long"},
{"type": "social", "tone": "casual", "length": "short"}
]
return content_types[int(time.time()) % 3]
def translate_content(content: Dict):
"""Simulates content translation"""
languages = ["spanish", "french", "german", "japanese", "chinese"]
translations = {lang: f"Translated content in {lang}" for lang in languages}
return translations
def check_cultural_context(translations: Dict):
"""Simulates cultural context verification"""
cultural_issues = {
"spanish": [],
"french": ["idiom_mismatch"],
"german": [],
"japanese": ["formality_level"],
"chinese": ["cultural_reference"]
}
return cultural_issues
def adapt_content(issues: Dict):
"""Simulates content adaptation"""
adaptations = {
"idiom_mismatch": "localized_expression",
"formality_level": "adjusted_tone",
"cultural_reference": "localized_reference"
}
return {lang: [adaptations[issue] for issue in issues]
for lang, issues in issues.items() if issues}
def quality_check():
"""Simulates quality assessment"""
quality_levels = ["high", "medium", "needs_revision"]
return quality_levels[int(time.time()) % 3]
# Create specialized agents
content_generator = Agent(
name="Content Generator",
role="Base Content Creation",
goal="Generate high-quality base content",
instructions="Create engaging base content",
tools=[generate_base_content]
)
translator = Agent(
name="Content Translator",
role="Translation",
goal="Translate content accurately",
instructions="Translate content while maintaining meaning",
tools=[translate_content]
)
cultural_checker = Agent(
name="Cultural Checker",
role="Cultural Verification",
goal="Verify cultural appropriateness",
instructions="Check for cultural sensitivities",
tools=[check_cultural_context]
)
content_adapter = Agent(
name="Content Adapter",
role="Content Adaptation",
goal="Adapt content for cultural fit",
instructions="Modify content based on cultural context",
tools=[adapt_content]
)
quality_assessor = Agent(
name="Quality Assessor",
role="Quality Assessment",
goal="Ensure content quality",
instructions="Assess overall content quality",
tools=[quality_check]
)
# Create workflow tasks
generation_task = Task(
name="generate_content",
description="Generate base content",
expected_output="Base content for translation",
agent=content_generator,
is_start=True,
next_tasks=["translate_content"]
)
translation_task = Task(
name="translate_content",
description="Translate content to target languages",
expected_output="Translated content",
agent=translator,
next_tasks=["check_cultural"]
)
cultural_task = Task(
name="check_cultural",
description="Check cultural appropriateness",
expected_output="Cultural context issues",
agent=cultural_checker,
next_tasks=["adapt_content"]
)
adaptation_task = Task(
name="adapt_content",
description="Adapt content for cultural fit",
expected_output="Culturally adapted content",
agent=content_adapter,
next_tasks=["assess_quality"]
)
quality_task = Task(
name="assess_quality",
description="Assess content quality",
expected_output="Quality assessment",
agent=quality_assessor,
task_type="decision",
condition={
"high": "", # Complete workflow
"medium": ["adapt_content"], # Minor revisions needed
"needs_revision": ["translate_content"] # Major revisions needed
}
)
# Create workflow
workflow = PraisonAIAgents(
agents=[content_generator, translator, cultural_checker,
content_adapter, quality_assessor],
tasks=[generation_task, translation_task, cultural_task,
adaptation_task, quality_task],
process="workflow",
verbose=True
)
def main():
print("\nStarting Multilingual Content Generation Workflow...")
print("=" * 50)
# Run workflow
results = workflow.start()
# Print results
print("\nContent Generation Results:")
print("=" * 50)
for task_id, result in results["task_results"].items():
if result:
print(f"\nTask: {task_id}")
print(f"Result: {result.raw}")
print("-" * 50)
if __name__ == "__main__":
main()