SatyamSinghal commited on
Commit
6ce6f34
·
verified ·
1 Parent(s): fb255bf

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +77 -0
app.py ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import openai
3
+
4
+
5
+ # Configure OpenAI API
6
+ openai.api_key = getenv("GROQ_API_KEY")
7
+ openai.api_base = "https://api.groq.com/openai/v1"
8
+
9
+ # Function to get AI-generated astrology response
10
+ def get_groq_response(name, dob, time_of_birth, place_of_birth, zodiac_sign, query):
11
+ try:
12
+ # Construct the message
13
+ messages = [
14
+ {"role": "system", "content": """
15
+ You are a mystical astrologer. Provide detailed insights about zodiac signs, planetary alignments,
16
+ and astrological predictions based on the user's inputs. Use a mystical and engaging tone.
17
+ """},
18
+ {"role": "user", "content": f"""
19
+ Name: {name}
20
+ Date of Birth: {dob}
21
+ Time of Birth: {time_of_birth}
22
+ Place of Birth: {place_of_birth}
23
+ Zodiac Sign: {zodiac_sign}
24
+ Query: {query}
25
+ """}
26
+ ]
27
+ # Generate response from the AI
28
+ response = openai.ChatCompletion.create(
29
+ model="llama-3.3-70b-versatile",
30
+ messages=messages
31
+ )
32
+ return response.choices[0].message["content"]
33
+ except Exception as e:
34
+ return f"Error: {str(e)}"
35
+
36
+ # Chatbot function to handle user input and history
37
+ def chatbot(name, dob, time_of_birth, place_of_birth, zodiac_sign, query, history=[]):
38
+ # Get the response from the AI
39
+ bot_response = get_groq_response(name, dob, time_of_birth, place_of_birth, zodiac_sign, query)
40
+ # Append the conversation to history
41
+ history.append((f"You: {query}", f"Astrologer: {bot_response}"))
42
+ return history, history
43
+
44
+ # Define Gradio interface
45
+ chat_interface = gr.Interface(
46
+ fn=chatbot, # Function to call for interaction
47
+ inputs=[
48
+ gr.Textbox(label="Your Name"), # Name input
49
+ gr.Textbox(label="Date of Birth (e.g., 01-01-2000)"), # DOB input
50
+ gr.Textbox(label="Time of Birth (e.g., 10:30 AM)"), # Time of Birth input
51
+ gr.Textbox(label="Place of Birth"), # Place of Birth input
52
+ gr.Dropdown(
53
+ label="Your Zodiac Sign",
54
+ choices=[
55
+ "Aries", "Taurus", "Gemini", "Cancer", "Leo", "Virgo",
56
+ "Libra", "Scorpio", "Sagittarius", "Capricorn", "Aquarius", "Pisces"
57
+ ]
58
+ ), # Dropdown for zodiac sign
59
+ gr.Textbox(label="Your Question for the Astrologer"), # Query input
60
+ gr.State(), # State for chat history
61
+ ],
62
+ outputs=[
63
+ gr.Chatbot(label="Astrology Chat"), # Chatbot interface for responses
64
+ gr.State(), # State to maintain chat history
65
+ ],
66
+ title="Astrology AI Assistant 🌌",
67
+ description=(
68
+ "Welcome to your personal Astrology AI Assistant! "
69
+ "Ask questions about your zodiac sign, horoscope, and planetary alignments. "
70
+ "Enter your details and let the stars guide you. ✨"
71
+ ),
72
+ theme="dark" # Optional: Gradio theme customization
73
+ )
74
+
75
+ # Launch the Gradio app
76
+ if __name__ == "__main__":
77
+ chat_interface.launch()