Spaces:
Running
Running
Upload app.py
Browse files
app.py
CHANGED
@@ -256,15 +256,19 @@ class PodcastGenerator:
|
|
256 |
user_prompt = f"Please generate a podcast script based on the following user input:\n{prompt}"
|
257 |
|
258 |
# 配置 SambaNova API client
|
259 |
-
if
|
260 |
-
api_key =
|
|
|
|
|
|
|
261 |
client = openai.OpenAI(
|
262 |
-
api_key=api_key,
|
263 |
base_url="https://api.sambanova.ai/v1",
|
264 |
)
|
265 |
|
266 |
# 嘗試生成內容
|
267 |
try:
|
|
|
268 |
response = client.chat.completions.create(
|
269 |
model='Meta-Llama-3.1-405B-Instruct',
|
270 |
messages=[
|
@@ -274,13 +278,14 @@ class PodcastGenerator:
|
|
274 |
temperature=1,
|
275 |
max_tokens=8192
|
276 |
)
|
277 |
-
logger.info(f"API
|
278 |
|
279 |
if response.choices and len(response.choices) > 0:
|
280 |
generated_text = response.choices[0].message.content
|
|
|
281 |
else:
|
282 |
logger.warning("No content generated from the API")
|
283 |
-
|
284 |
|
285 |
except Exception as e:
|
286 |
logger.error(f"Error generating script: {str(e)}")
|
@@ -292,14 +297,11 @@ class PodcastGenerator:
|
|
292 |
else:
|
293 |
raise gr.Error(f"Failed to generate podcast script: {str(e)}")
|
294 |
|
295 |
-
# 列印生成的Podcast指令碼
|
296 |
-
print(f"Generated podcast script:\n{generated_text}")
|
297 |
-
|
298 |
# 嘗試解析JSON,如果失敗則返回原始文本
|
299 |
try:
|
300 |
return json.loads(generated_text)
|
301 |
except json.JSONDecodeError:
|
302 |
-
|
303 |
return {"raw_text": generated_text}
|
304 |
|
305 |
async def tts_generate(self, text: str, speaker: int, speaker1: str, speaker2: str) -> str:
|
@@ -384,6 +386,11 @@ class PodcastGenerator:
|
|
384 |
start_time = time.time()
|
385 |
podcast_json = await self.generate_script(input_text, language, api_key)
|
386 |
end_time = time.time()
|
|
|
|
|
|
|
|
|
|
|
387 |
gr.Info(f"Successfully generated podcast script in {(end_time - start_time):.2f} seconds!")
|
388 |
|
389 |
# 生成Podcast音訊檔案
|
@@ -472,6 +479,9 @@ async def process_input(input_text: str, input_file, language: str, speaker1: st
|
|
472 |
# 建立PodcastGenerator實例並生成Podcast
|
473 |
podcast_generator = PodcastGenerator()
|
474 |
podcast = await podcast_generator.generate_podcast(input_text, language, speaker1, speaker2, api_key)
|
|
|
|
|
|
|
475 |
|
476 |
# 計算總耗時並顯示資訊
|
477 |
end_time = time.time()
|
|
|
256 |
user_prompt = f"Please generate a podcast script based on the following user input:\n{prompt}"
|
257 |
|
258 |
# 配置 SambaNova API client
|
259 |
+
if api_key:
|
260 |
+
openai.api_key = api_key
|
261 |
+
else:
|
262 |
+
openai.api_key = os.getenv("YOUR_API_TOKEN")
|
263 |
+
|
264 |
client = openai.OpenAI(
|
265 |
+
api_key=openai.api_key,
|
266 |
base_url="https://api.sambanova.ai/v1",
|
267 |
)
|
268 |
|
269 |
# 嘗試生成內容
|
270 |
try:
|
271 |
+
logger.info(f"Sending request to SambaNova API with prompt: {user_prompt[:100]}...")
|
272 |
response = client.chat.completions.create(
|
273 |
model='Meta-Llama-3.1-405B-Instruct',
|
274 |
messages=[
|
|
|
278 |
temperature=1,
|
279 |
max_tokens=8192
|
280 |
)
|
281 |
+
logger.info(f"Received response from API: {response}")
|
282 |
|
283 |
if response.choices and len(response.choices) > 0:
|
284 |
generated_text = response.choices[0].message.content
|
285 |
+
logger.info(f"Generated text: {generated_text[:100]}...")
|
286 |
else:
|
287 |
logger.warning("No content generated from the API")
|
288 |
+
return {"error": "No content generated from the API"}
|
289 |
|
290 |
except Exception as e:
|
291 |
logger.error(f"Error generating script: {str(e)}")
|
|
|
297 |
else:
|
298 |
raise gr.Error(f"Failed to generate podcast script: {str(e)}")
|
299 |
|
|
|
|
|
|
|
300 |
# 嘗試解析JSON,如果失敗則返回原始文本
|
301 |
try:
|
302 |
return json.loads(generated_text)
|
303 |
except json.JSONDecodeError:
|
304 |
+
logger.warning("Generated text is not valid JSON. Returning raw text.")
|
305 |
return {"raw_text": generated_text}
|
306 |
|
307 |
async def tts_generate(self, text: str, speaker: int, speaker1: str, speaker2: str) -> str:
|
|
|
386 |
start_time = time.time()
|
387 |
podcast_json = await self.generate_script(input_text, language, api_key)
|
388 |
end_time = time.time()
|
389 |
+
|
390 |
+
if "error" in podcast_json:
|
391 |
+
gr.Error(f"Failed to generate podcast script: {podcast_json['error']}")
|
392 |
+
return None
|
393 |
+
|
394 |
gr.Info(f"Successfully generated podcast script in {(end_time - start_time):.2f} seconds!")
|
395 |
|
396 |
# 生成Podcast音訊檔案
|
|
|
479 |
# 建立PodcastGenerator實例並生成Podcast
|
480 |
podcast_generator = PodcastGenerator()
|
481 |
podcast = await podcast_generator.generate_podcast(input_text, language, speaker1, speaker2, api_key)
|
482 |
+
|
483 |
+
if podcast is None:
|
484 |
+
return None
|
485 |
|
486 |
# 計算總耗時並顯示資訊
|
487 |
end_time = time.time()
|