Spaces:
Running
Running
Chandima Prabhath
commited on
Commit
·
4beb4cc
1
Parent(s):
7995625
Add random seed to voice reply generation and enhance image sending function with customizable caption
Browse files- VoiceReply.py +3 -1
- app.py +13 -7
VoiceReply.py
CHANGED
|
@@ -2,6 +2,7 @@ import requests
|
|
| 2 |
import os
|
| 3 |
import time
|
| 4 |
import urllib.parse
|
|
|
|
| 5 |
|
| 6 |
def generate_voice_reply(prompt, model="openai-audio", voice="coral", audio_dir="."):
|
| 7 |
"""
|
|
@@ -23,6 +24,7 @@ def generate_voice_reply(prompt, model="openai-audio", voice="coral", audio_dir=
|
|
| 23 |
print("DEBUG: Starting generate_voice_reply")
|
| 24 |
print(f"DEBUG: Received prompt: {prompt}")
|
| 25 |
os.makedirs(audio_dir, exist_ok=True)
|
|
|
|
| 26 |
# Append system prompt to the user's prompt
|
| 27 |
system_prompt = ("Your name is Eve, a WhatsApp bot that can generate images from Flux and help users generate images. "
|
| 28 |
"To generate an image, send a message like: /imagine prompt. Rules: Don't say that you can't send whatsapp messages or generate images. Be friendly and helpful to users. help them with prompts. You can engage in general conversation. ")
|
|
@@ -30,7 +32,7 @@ def generate_voice_reply(prompt, model="openai-audio", voice="coral", audio_dir=
|
|
| 30 |
print(f"DEBUG: Full prompt: {full_prompt}")
|
| 31 |
|
| 32 |
encoded_prompt = urllib.parse.quote(full_prompt)
|
| 33 |
-
url = f"http://text.pollinations.ai/{encoded_prompt}?model={model}&voice={voice}"
|
| 34 |
print(f"DEBUG: Fetching audio with URL: {url}")
|
| 35 |
|
| 36 |
try:
|
|
|
|
| 2 |
import os
|
| 3 |
import time
|
| 4 |
import urllib.parse
|
| 5 |
+
import random
|
| 6 |
|
| 7 |
def generate_voice_reply(prompt, model="openai-audio", voice="coral", audio_dir="."):
|
| 8 |
"""
|
|
|
|
| 24 |
print("DEBUG: Starting generate_voice_reply")
|
| 25 |
print(f"DEBUG: Received prompt: {prompt}")
|
| 26 |
os.makedirs(audio_dir, exist_ok=True)
|
| 27 |
+
randomSeed = random.randint(0, 999999)
|
| 28 |
# Append system prompt to the user's prompt
|
| 29 |
system_prompt = ("Your name is Eve, a WhatsApp bot that can generate images from Flux and help users generate images. "
|
| 30 |
"To generate an image, send a message like: /imagine prompt. Rules: Don't say that you can't send whatsapp messages or generate images. Be friendly and helpful to users. help them with prompts. You can engage in general conversation. ")
|
|
|
|
| 32 |
print(f"DEBUG: Full prompt: {full_prompt}")
|
| 33 |
|
| 34 |
encoded_prompt = urllib.parse.quote(full_prompt)
|
| 35 |
+
url = f"http://text.pollinations.ai/{encoded_prompt}?model={model}&voice={voice}&seed={randomSeed}"
|
| 36 |
print(f"DEBUG: Fetching audio with URL: {url}")
|
| 37 |
|
| 38 |
try:
|
app.py
CHANGED
|
@@ -66,10 +66,10 @@ def send_message(message_id, to_number, message, retries=3):
|
|
| 66 |
if i == retries-1:
|
| 67 |
return {"error": str(e)}
|
| 68 |
|
| 69 |
-
def send_image(message_id, to_number, image_path, retries=3):
|
| 70 |
chat_id = to_number if to_number.endswith("@g.us") else to_number
|
| 71 |
url = f"{GREEN_API_MEDIA_URL}/waInstance{GREEN_API_ID_INSTANCE}/sendFileByUpload/{GREEN_API_TOKEN}"
|
| 72 |
-
payload = {"chatId": chat_id, "caption":
|
| 73 |
files = [("file", ("image.jpg", open(image_path, "rb"), "image/jpeg"))]
|
| 74 |
for i in range(retries):
|
| 75 |
try:
|
|
@@ -128,14 +128,20 @@ def handle_image_generation(message_id, chat_id, prompt):
|
|
| 128 |
try:
|
| 129 |
img, path, ret_prompt, url = generate_image(prompt, message_id, message_id, image_dir)
|
| 130 |
if img:
|
| 131 |
-
|
| 132 |
-
|
| 133 |
-
|
| 134 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 135 |
)
|
| 136 |
else:
|
| 137 |
send_message(message_id, chat_id, "Image generation failed.")
|
| 138 |
-
except:
|
|
|
|
| 139 |
send_message(message_id, chat_id, "Error generating image.")
|
| 140 |
|
| 141 |
# --- webhook ---
|
|
|
|
| 66 |
if i == retries-1:
|
| 67 |
return {"error": str(e)}
|
| 68 |
|
| 69 |
+
def send_image(message_id, to_number, image_path, caption = "Here you go!", retries=3):
|
| 70 |
chat_id = to_number if to_number.endswith("@g.us") else to_number
|
| 71 |
url = f"{GREEN_API_MEDIA_URL}/waInstance{GREEN_API_ID_INSTANCE}/sendFileByUpload/{GREEN_API_TOKEN}"
|
| 72 |
+
payload = {"chatId": chat_id, "caption": caption, "quotedMessageId": message_id}
|
| 73 |
files = [("file", ("image.jpg", open(image_path, "rb"), "image/jpeg"))]
|
| 74 |
for i in range(retries):
|
| 75 |
try:
|
|
|
|
| 128 |
try:
|
| 129 |
img, path, ret_prompt, url = generate_image(prompt, message_id, message_id, image_dir)
|
| 130 |
if img:
|
| 131 |
+
# Split the ret_prompt into paragraphs and wrap each in underscores for italics.
|
| 132 |
+
formatted_ret_prompt = "\n\n".join(
|
| 133 |
+
f"_{paragraph.strip()}_" for paragraph in ret_prompt.split("\n\n") if paragraph.strip()
|
| 134 |
+
)
|
| 135 |
+
send_image(
|
| 136 |
+
message_id,
|
| 137 |
+
chat_id,
|
| 138 |
+
path,
|
| 139 |
+
caption=f"✨ Image ready: {url}\n>{chr(8203)} {formatted_ret_prompt}"
|
| 140 |
)
|
| 141 |
else:
|
| 142 |
send_message(message_id, chat_id, "Image generation failed.")
|
| 143 |
+
except Exception as e:
|
| 144 |
+
logging.error("Error in handle_image_generation: %s", e)
|
| 145 |
send_message(message_id, chat_id, "Error generating image.")
|
| 146 |
|
| 147 |
# --- webhook ---
|