|
|
|
from groq import Groq |
|
from openai import OpenAI |
|
import os |
|
|
|
|
|
GROQ_API_KEY = os.environ.get("GROQ_API_KEY") |
|
OPENAI_API_KEY = os.environ.get("OPENAI_API_KEY") |
|
|
|
|
|
openai_client = OpenAI(api_key=OPENAI_API_KEY) |
|
|
|
|
|
CONTENT_TYPES = ["triết lý sống", "Theo yêu cầu"] |
|
|
|
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ừ. |
|
""" |
|
} |
|
|
|
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)}" |