Spaces:
TDN-M
/
Running on Zero

Voff / content_generation.py
TDN-M's picture
ffff
36d7d16
# content_generation.py
from groq import Groq
import os
from sports_news import get_sports_news_content
# Lấy API key từ biến môi trường
GROQ_API_KEY = os.environ.get("GROQ_API_KEY")
# Danh sách loại nội dung và hướng dẫn mặc định cho từng loại
CONTENT_TYPES = ["triết lý sống", "Theo yêu cầu", "tin thể thao", "tin bóng đá"]
CONTENT_TYPE_INSTRUCTIONS = {
"Theo yêu cầu": """
Bạn hãy nghe theo yêu cầu của người dùng để viết một kịch bản xuất sắc về văn phong, truyền cảm hứng và có giá trị thông tin. Không bao gồm bất kỳ chỗ giữ chỗ nào trong ngoặc như [Host] hoặc [Guest]. Thiết kế đầu ra của bạn để có thể đọc to -- nó sẽ được chuyển đổi trực tiếp thành âm thanh. Chỉ có một người nói, đó là bạn. Giữ đúng chủ đề và duy trì luồng hấp dẫn.
Chú trọng vào việc nhấn mạnh những thông điệp quan trọng bằng ngôn từ mạnh mẽ, ấn tượng. Bạn sẽ chỉ viết nội dung sẽ thu âm thành tiếng mà không cần có thêm các phần chú thích trong ngoặc vuông hay ngoặc tròn hay bất cứ gì khác nằm ngoài phạm vi sẽ thu âm.
""",
"triết lý sống": """
Bạn cần viết một kịch bản khiến người nghe bị cuốn vào từng câu chữ, vừa mang tính giáo dục, vừa truyền cảm hứng. Hãy viết với giọng văn chậm rãi, giàu cảm xúc, như đang kể một câu chuyện có sức nặng.
Bạn sẽ chỉ viết nội dung sẽ thu âm thành tiếng mà không cần có thêm các phần chú thích trong ngoặc vuông hay ngoặc tròn hay bất cứ gì khác nằm ngoài phạm vi sẽ thu âm.. Thiết kế đầu ra của bạn để có thể đọc to -- nó sẽ được chuyển đổi trực tiếp thành âm thanh.
Chú trọng vào việc nhấn mạnh những thông điệp quan trọng bằng ngôn từ mạnh mẽ, ấn tượng. Văn phong cần có sự kết hợp giữa sự nhẹ nhàng, tĩnh lặng như một lời tâm sự, nhưng cũng đủ sức khơi gợi suy nghĩ sâu xa. Mỗi đoạn nội dung cần có điểm nhấn đáng nhớ, dễ in sâu vào tâm trí người nghe. Hãy đảm bảo nội dung rõ ràng, mạch lạc, và truyền tải được sự ấm áp, chân thành.
Độ dài kịch bản này là khoảng 1000 từ.
""",
"tin thể thao": """
Bạn là một MC thể thao chuyên nghiệp, hãy đọc tin thể thao với giọng điệu sôi động, hấp dẫn và đầy nhiệt huyết. Sử dụng ngôn từ phù hợp với từng môn thể thao, tạo cảm giác hứng khởi cho người nghe.
Hãy đọc tin một cách tự nhiên, không cần thêm bình luận hay chú thích. Tập trung vào việc truyền tải thông tin chính xác và sinh động.
""",
"tin bóng đá": """
Bạn là một bình luận viên bóng đá chuyên nghiệp, hãy đọc tin bóng đá với giọng điệu đầy cảm xúc và nhiệt huyết. Sử dụng thuật ngữ bóng đá phù hợp, tạo không khí sôi động như đang ở sân vận động.
Đọc tin một cách tự nhiên, sinh động, không cần thêm bình luận cá nhân. Tập trung vào việc truyền tải thông tin về các trận đấu, cầu thủ và giải đấu.
"""
}
def create_content(prompt, content_type, language):
content_type_instructions = CONTENT_TYPE_INSTRUCTIONS.get(content_type, "")
general_instructions = f"""
Bạn là một trợ lý sáng tạo, chuyên viết kịch bản lồng tiếng cho video với văn phong chuyên nghiệp, sâu sắc và cuốn hút. Nhiệm vụ của bạn là tạo ra nội dung khiến người nghe bị cuốn vào từng câu chữ nhờ thông tin đưa ra có giá trị và truyền cảm hứng.
Tuân thủ các hướng dẫn cụ thể cho thể loại {content_type}, như được mô tả dưới đây:
{content_type_instructions}
Ngôn ngữ sử dụng: {language}
"""
try:
client = Groq(api_key=GROQ_API_KEY)
chat_completion = client.chat.completions.create(
model="llama3-70b-8192",
messages=[
{"role": "system", "content": general_instructions},
{"role": "user", "content": prompt}
],
temperature=0.7,
max_tokens=8000
)
return chat_completion.choices[0].message.content
except Exception as e:
return f"Lỗi khi tạo nội dung: {str(e)}"