bizvideoschool
commited on
Commit
•
757b271
1
Parent(s):
c91c212
Update app.py
Browse files
app.py
CHANGED
@@ -4,35 +4,56 @@ import requests
|
|
4 |
from PIL import Image
|
5 |
from io import BytesIO
|
6 |
|
7 |
-
#
|
8 |
-
openai.api_key =
|
9 |
|
10 |
st.title("Customer Avatar Generator")
|
11 |
|
12 |
# User inputs for avatar generation
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
32 |
try:
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
37 |
except Exception as e:
|
|
|
38 |
st.error(f"Error in generating image: {e}")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
from PIL import Image
|
5 |
from io import BytesIO
|
6 |
|
7 |
+
# Access the OpenAI API key from Hugging Face Spaces secrets
|
8 |
+
openai.api_key = st.secrets["OPENAI_API_KEY"]
|
9 |
|
10 |
st.title("Customer Avatar Generator")
|
11 |
|
12 |
# User inputs for avatar generation
|
13 |
+
business_type = st.text_input("Business Type", placeholder="e.g., Real Estate, Fitness")
|
14 |
+
target_demographics = st.text_input("Target Demographics", placeholder="e.g., Age range, gender, location")
|
15 |
+
interests = st.text_input("Interests", placeholder="e.g., Home improvement, health and wellness")
|
16 |
+
additional_details = st.text_input("Additional Details", placeholder="Any specific characteristics or preferences")
|
17 |
+
|
18 |
+
if st.button('Generate Avatar'):
|
19 |
+
# Construct the prompt for text generation
|
20 |
+
prompt_text = f"Create a detailed customer avatar for a business in the {business_type} industry. Target demographics: {target_demographics}. Interests: {interests}. Additional details: {additional_details}."
|
21 |
+
|
22 |
+
# Call the OpenAI API for text generation
|
23 |
+
try:
|
24 |
+
response_text = openai.ChatCompletion.create(
|
25 |
+
model="gpt-4", # Use GPT-4 model
|
26 |
+
messages=[
|
27 |
+
{"role": "system", "content": "You are a helpful assistant."},
|
28 |
+
{"role": "user", "content": prompt_text}
|
29 |
+
]
|
30 |
+
)
|
31 |
+
avatar_description = response_text.choices[0].message['content']
|
32 |
+
except Exception as e:
|
33 |
+
avatar_description = f"Error in generating avatar description: {e}"
|
34 |
+
|
35 |
+
# Construct the prompt for image generation
|
36 |
+
prompt_image = f"A visual representation of a customer avatar for a {business_type} business. Demographics: {target_demographics}. Interests: {interests}."
|
37 |
+
|
38 |
+
# Call the DALL-E API for image generation
|
39 |
try:
|
40 |
+
response_image = openai.Image.create(
|
41 |
+
model="dall-e-3", # Specify DALL-E 3 model
|
42 |
+
prompt=prompt_image,
|
43 |
+
n=1,
|
44 |
+
size="1024x1024" # Set image dimensions
|
45 |
+
)
|
46 |
+
|
47 |
+
# Fetch the image from the URL
|
48 |
+
image_url = response_image['data'][0]['url']
|
49 |
+
image_response = requests.get(image_url)
|
50 |
+
image = Image.open(BytesIO(image_response.content))
|
51 |
except Exception as e:
|
52 |
+
image = None
|
53 |
st.error(f"Error in generating image: {e}")
|
54 |
+
|
55 |
+
# Display the results
|
56 |
+
st.write("**Avatar Description:**")
|
57 |
+
st.write(avatar_description)
|
58 |
+
if image:
|
59 |
+
st.image(image, caption='Generated Customer Avatar Image')
|